【发布时间】:2013-12-15 20:40:09
【问题描述】:
我目前正在使用 android,并且我正在使用带有一些标头的 http 连接(出于安全目的,我没有包含它们或真实的 url)从 API 获取 JSON 响应,并将该响应反馈回应用程序。我遇到的问题是,当使用 http 请求的 getContentLength 方法时,返回了错误的长度(返回的错误长度是 1225,JSON 数组的正确字符长度是 3365)。
我有一种感觉,当我的读者开始阅读 JSON 时,它并没有完全加载,因此那时只是在阅读加载的 JSON。有没有办法解决这个问题,可能使用 HTTP 连接延迟或等到它完全加载来读取数据?
URL url = new URL("https://www.exampleofurl.com");
HttpURLConnection request = (HttpURLConnection) url.openConnection();
request.connect();
int responseCode = request.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = request.getInputStream();
InputStreamReader reader = new InputStreamReader(inputStream);
long contentLength2 = Long.parseLong(request.getHeaderField("Content-Length"));
Log.i("contentLength: ", "Content: " + contentLength2);
【问题讨论】: