2012-05-01 66 views
2

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

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

UPDATE

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

+2

的可能重复[如何HTTP状态代码转换为文本在Java中?(http://stackoverflow.com/questions/8179547/how-to-convert-http-status-code-into -text-in-java) –

+2

关于你的更新:是否曾经发生实际响应消息**是字面上**“未找到”?换句话说:您的响应代码是404,因为该资源未找到*。 –

+0

你是对的。这是我的错误。 – Conscious

回答

4

尝试getResponseMessage(),它将一个字符串消息,你可能会感兴趣。

+0

我测试了它。它不返回它的描述 – Conscious

+2

你想要什么样的描述? 'HTTP/1.0 200 OK HTTP/1.0 404 Not Found。分别提取字符串“OK”和“Not Found”。如果没有人能够从响应中辨别出任何结果(结果不是有效的HTTP),则返回null(例如' – user1335794

+0

'public static final int HTTP_OK: OK '或'public static final int HTTP_PROXY_AUTH: Proxy authentication required' or'公共静态最终诠释HTTP_VERSION:版本不支持' – Conscious

2

尝试

httpConnection.getResponseMessage() 
+0

我测试过了。它不返回它的描述 – Conscious

0

您不仅欢迎您检查HTTP/1.1 RFC,它确实包含您正在寻找的内容。

+0

如何以编程方式获取其描述? – Conscious

+0

你为什么需要这个?协议的重点是将消息称为代码 – thepoosh

2

的文档说:

获取HTTP响应消息,如果有的话,与来自服务器的响应代码一起返回。 >从如下响应: HTTP/1.0 200 OK HTTP/1.0 404未找到 分别提取字符串“确定”和“未找到”。如果不能从响应中识别出来,则返回null(结果不是有效的HTTP)。

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

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