【问题标题】:HttpURLConnection responsecode is randomly -1HttpURLConnection 响应码是随机的 -1
【发布时间】:2011-11-09 14:49:22
【问题描述】:

您好,我正在使用以下代码建立 url 连接。但随机我得到 responseCode -1(这是 responseCode 的默认值):

  try {
        URL url = new URL(urlString);

        HttpURLConnection httpconn = (HttpURLConnection) url.openConnection();

        if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK) {
            handleData(new DataInputStream(httpconn.getInputStream()), requestCode);
        } else {
            Log.e(TAG, "HttpConnection not OK: " + httpconn.getResponseCode());
            ActivityHelper.httpError(this);
        }
        httpconn.disconnect();
    } catch (Exception e) {
        Log.e(TAG, "handleHttpConnection", e);
        ActivityHelper.httpError(this);
    }

我做错了吗?因为它在 10 次尝试中估计有 9 次都能完美运行。

【问题讨论】:

  • 我猜url.openConnection() 不一定有时间打开底层 http 连接。您可以尝试在打开后添加httpconn.connect()。或者响应代码应该设置为最新,一旦你调用了httpconn.getInputStream(),可以在检查响应代码之前移动它。

标签: android httpurlconnection


【解决方案1】:

UrlConnection 有问题。

请参阅官方 Android 开发者博客中的 this 博客文章,了解针对某个问题的 Gingerbread 前解决方法。

我的建议,不要使用它。在 3.2 上它对我来说仍然很不稳定。我切换到了 HttpClient,事情变得不那么糟糕了。

【讨论】:

  • 有人对此有更新,或确认 4.x 平台的脆弱性吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-04
  • 1970-01-01
  • 2016-12-14
  • 2017-02-12
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
相关资源
最近更新 更多