【问题标题】:How can I get the description of ResponseCode of HttpURLConnection?如何获取 HttpURLConnection 的 ResponseCode 的描述?
【发布时间】:2012-05-01 12:46:34
【问题描述】:

调用以下代码后,getResponseCode()返回远程HTTP服务器返回的响应码。此代码有一个简短的描述。如何在 Android 中以编程方式获取其描述?

URL myurl = new URL(url);
URLConnection connection = myurl.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) connection;
int responseCode = httpConnection.getResponseCode();

更新

httpConnection.getResponseMessage() 有时会返回“未找到”而 responseCode 有效

【问题讨论】:

  • 关于您的更新:有没有发生过实际响应消息字面意思“未找到”?换句话说:您的响应代码是 404,因为资源未找到
  • 你是对的。这是我的错。

标签: java android httpurlconnection http-response-codes


【解决方案1】:

试试getResponseMessage(),它会是一条你可能感兴趣的字符串消息。

【讨论】:

  • 我测试过了。它不返回其描述
  • 你想要什么样的描述? HTTP/1.0 200 OK HTTP/1.0 404 Not Found. Extracts the Strings "OK" and "Not Found" respectively. Returns null if none could be discerned from the responses (the result was not valid HTTP).
  • 例如public static final int HTTP_OK : OK public static final int HTTP_PROXY_AUTH : Proxy authentication requiredpublic static final int HTTP_VERSION : Version not supported
  • 200 表示HTTP_OK,您可以从getResponseCode() 获取。 HttpURLConnection中有一些静态变量,看看apidocs.oracle.com/javase/6/docs/api
  • 这就是你的全部代码吗?您应该向该 url 发送一个 get 或 post 方法,然后调用 getCode 或 getMessage() 来检查您的请求是否得到正确处理。
【解决方案2】:

试试

httpConnection.getResponseMessage() 

【讨论】:

  • 我测试过了。它不返回其描述
【解决方案3】:

文档说:

获取与服务器的响应代码一起返回的 HTTP 响应消息(如果有)。 >来自以下回复: HTTP/1.0 200 正常 HTTP/1.0 404 未找到 分别提取字符串“OK”和“Not Found”。如果无法从响应中识别出任何内容(结果不是有效的 HTTP),则返回 null。

也许您的服务器没有消息? 您还可以编写自己的方法,该方法将返回代码描述。 例如

    public static String getMessage(int code) {
        switch(code) {
            case 200: return "OK";
        }
    }

【讨论】:

    【解决方案4】:

    非常欢迎您查看HTTP/1.1 RFC,它包含您正在寻找的内容。

    【讨论】:

    • 如何以编程方式获取其描述?
    • 你为什么需要那个?!该协议的重点是将消息称为代码
    猜你喜欢
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 2023-03-24
    相关资源
    最近更新 更多