gpt4 book ai didi

java - JSON 响应被切断,Android

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:02 25 4
gpt4 key购买 nike

我看过很多关于这个主题的帖子,但似乎没有一个能解决我的问题。

问题是来自服务器的 JSON 响应被切断,因此我在尝试将响应放入 JSONArray 时遇到 JSONException。

    json = new JSONArray(EntityUtils.toString(response.getEntity()));

完整代码如下:

    private class AsyncFetchForms extends AsyncTask<String, Void, JSONArray> {

private HttpClient mClient = new DefaultHttpClient();
private AsyncTaskCompleteListener<JSONArray> listener;
private String serverUrl;
private String credentials;

private ProgressDialog progressDialog;
private HttpGet httpGet;
private String response;
private BasicResponseHandler responseHandler;
private boolean showDialog;
private JSONArray json;



public AsyncFetchForms(String url, String message, AsyncTaskCompleteListener<JSONArray> listener, boolean showDialog)
{
serverUrl = Utils.getServerUrl(context) + url;
credentials = Utils.getUserCredentials(context);
this.listener = listener;
this.showDialog = showDialog;

httpGet = new HttpGet(serverUrl);
httpGet.setHeader("Authorization", "Basic " + credentials);
httpGet.setHeader("Accept", "application/json");
httpGet.setHeader("Accept-Encoding", "gzip");
httpGet.setHeader("Connection", "keep-alive");

responseHandler = new BasicResponseHandler();


if(showDialog)
{
progressDialog = new ProgressDialog(context);
progressDialog.setMessage(message);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.show();
}
}


@Override
protected JSONArray doInBackground(String... params) {

try {
HttpResponse response = mClient.execute(httpGet);


if (response.getStatusLine().getStatusCode() == 200) {

json = new JSONArray(EntityUtils.toString(response.getEntity()));

return json;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onPostExecute(JSONArray result) {
System.out.println(result.toString());

}
}

谁能看出问题所在?

最佳答案

Logcat 只能显示大约 4000 个字符。所以你将不得不实现一个递归函数来查看整个日志。使用以下函数查看整个日志:

public static void longInfo(String str) {
if (str.length() > 4000) {
Log.d("", str.substring(0, 4000));
longInfo(str.substring(4000));
} else
Log.d("", str);
}

关于java - JSON 响应被切断,Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25120808/

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