java - Android HttpEntry 读取在 Droid x 上挂起

标签 java android http inputstream

我一直在开发一个基于网络的 Android 应用程序,我们希望该应用程序将数据发布到服务器并以 JSONString 形式读取响应,该代码在 3 个不同的设备上进行了测试,所有结果都正常,除了 Droid X ,它只是在从 HttpResponse 读取 inputStream 时挂起。 这是我的代码:

HttpResponse response = mClient.execute(mPost);
StatusLine status_line = response.getStatusLine();
int status_code = status_line.getStatusCode();
/*
 * Not ok Response
 */
if (status_code != 200){
  mBusy = false;            
  mListener.log("Error Status code = "+String.valueOf(status_code));
  return false; 
}

HttpEntity entry = response.getEntity();
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
mResponse = reader.readLine();

有什么想法我应该做什么吗?

最佳答案

我发现问题根源在于使用android的默认HTTP客户端。 相反,我使用了:

            HttpParams params = new BasicHttpParams();
        HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
        HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
        HttpProtocolParams.setUseExpectContinue(params, false);  
        HttpConnectionParams.setConnectionTimeout(params, 10000);
        HttpConnectionParams.setSoTimeout(params, 10000);
        ConnManagerParams.setMaxTotalConnections(params, 100);
        ConnManagerParams.setTimeout(params, 30000);

        SchemeRegistry registry = new SchemeRegistry();
        registry.register(new Scheme("http",PlainSocketFactory.getSocketFactory(), 80));
        registry.register(new Scheme("https",PlainSocketFactory.getSocketFactory(), 80));
        ThreadSafeClientConnManager manager = new ThreadSafeClientConnManager(params, registry);
        mClient = new DefaultHttpClient(manager, params);

而不是:

mClient = new DefaultHttpClient();

希望对某人有帮助。

关于java - Android HttpEntry 读取在 Droid x 上挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11493531/

相关文章:

java - 如何将字符串转换为具有 ISO-8859-1 字符集的文档 (DOM)

java - 加密Java代码转Go代码

java - Arrays.sort(pointsBySlope, p.SLOPE_ORDER) 是否取决于pointsBySlope[] 是什么?

android - 在apache服务器上上传文件

java - android studio 生成Javadoc失败

java - 删除数组元素 - 将所有元素向下移动一个索引

android - Retrofit 2.1 发布 Cyrillic 字段错误

json - 如何获取服务器从reqwest http调用发送回的数据?

asp.net - 如何在 HTTP 请求中设置 http cookie( header )

java - Java 在哪里存储记住的 HTTP 基本身份验证密码以及如何删除它们?