我想做的是从而HttpURLConnection不是JsonObjectRequest()从Volley库中使用一些数据。
HttpURLConnection
JsonObjectRequest()
以下是用于从服务器中获取JSON对象的代码。
JsonObjectRequest jsonReq = new JsonObjectRequest(Method.GET,"myURL", null, new Response.Listener<JSONObject>();
我试图改变null到JSONObject后myURL改为null。但这并没有解决。
null
JSONObject
myURL
中的url JsonObjectRequest()不是可选的,并且JSONObject参数用于将带有请求的参数发布到url。
从文档中:http : //afzaln.com/volley/com/android/volley/toolbox/JsonObjectRequest.html
http://developer.android.com/training/volley/index.html
JsonObjectRequest public JsonObjectRequest(int方法,字符串url,JSONObject jsonRequest,Response.Listener侦听器,Response.ErrorListener errorListener)创建一个新请求。 参数: method-要使用的HTTP方法 url-从中获取JSON的URL jsonRequest-与请求一起发布的JSONObject。允许为空,表示没有参数将与请求一起发布。 侦听器-侦听器以接收JSON响应 errorListener-错误侦听器,如果为null则忽略错误。
JsonObjectRequest
public JsonObjectRequest(int方法,字符串url,JSONObject jsonRequest,Response.Listener侦听器,Response.ErrorListener errorListener)创建一个新请求。
参数:
method-要使用的HTTP方法
url-从中获取JSON的URL
jsonRequest-与请求一起发布的JSONObject。允许为空,表示没有参数将与请求一起发布。
侦听器-侦听器以接收JSON响应
errorListener-错误侦听器,如果为null则忽略错误。
使用HttpURLConnection:
http://developer.android.com/reference/java/net/HttpURLConnection.html
该代码将是这样的:
public class getData extends AsyncTask<String, String, String> { HttpURLConnection urlConnection; @Override protected String doInBackground(String... args) { StringBuilder result = new StringBuilder(); try { URL url = new URL("https://api.github.com/users/dmnugent80/repos"); urlConnection = (HttpURLConnection) url.openConnection(); InputStream in = new BufferedInputStream(urlConnection.getInputStream()); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); String line; while ((line = reader.readLine()) != null) { result.append(line); } }catch( Exception e) { e.printStackTrace(); } finally { urlConnection.disconnect(); } return result.toString(); } @Override protected void onPostExecute(String result) { //Do something with the JSON string } }