gpt4 book ai didi

java - 如何在Android应用程序上从互联网获取json响应

转载 作者:行者123 更新时间:2023-12-01 12:06:30 26 4
gpt4 key购买 nike

我正在尝试从 api 调用获取 json 响应。但是发生了一些错误。请告诉我我的代码有什么问题...我的代码是这样的。

private JSONObject responseJson;

private void apiRequest() {
mQueue = Volley.newRequestQueue(MainActivity.this);
String mRequestUrl = "http://hogehoge";
JsonObjectRequest jsonOR = new JsonObjectRequest(Request.Method.GET, mRequestUrl, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
if (response.getJSONObject("response").has("error")) {
throw new NoSuchElementException(msg);
}else{
responseJson = response;
}
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// error
}
});

jsonOR.setRetryPolicy(new DefaultRetryPolicy(5000, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
mQueue.add(jsonOR);
}

错误消息是这样的。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.user.mymaterialapp/com.example.user.mymaterialapp.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.json.JSONObject.toString()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)

位于 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.json.JSONObject.toString()' on a null object reference
at com.example.user.mymaterialapp.MainActivity.onCreate(MainActivity.java:75)
at android.app.Activity.performCreate(Activity.java:5933)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)

最佳答案

试试这个代码

public String callWebService(String serviceURL) {
StringBuffer buff = new StringBuffer("");
HttpClient client;
BufferedReader in = null;

try {

HttpGet getRequest = new HttpGet(serviceURL);
final HttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
client = new DefaultHttpClient(httpParams);
HttpResponse response = client.execute(getRequest);
in = new BufferedReader(new InputStreamReader(response.getEntity()
.getContent()));
String line = "";
while ((line = in.readLine()) != null) {
buff.append(line);
}
in.close();
} catch (Exception e) {
}
return buff.toString();
}

它将返回 JSON

关于java - 如何在Android应用程序上从互联网获取json响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27551843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com