如何从Android中的NoHttpResponseException获取Http状态代码?

时间:2012-10-10 09:34:20

标签: android http-status-codes apache-commons-httpclient

在Android中,我有一个在Web服务上执行GET的HttpClient。 Web服务可以返回Http Error 429(请求太多),其中包含错误的JSON详细对象,其中包含更多数据(例如,将来可能再次重新发送请求的时间)。

不幸的是

response = httpclient.execute(httpGet, localContext);

引发NoHttpResponseException并且响应对象保持为NULL。

所以我没有办法来管理那个特定的429错误。

有解决方案吗?

更新 我用fiddler检查过,当服务器返回正确的JSON对象时,HTTP状态代码= 429,httpclient.execute(httpGet,localContext);只是抛出NoHttpResponseException - 所以问题不在于服务器不会返回任何结果。

1 个答案:

答案 0 :(得分:1)

你的意思是这样吗?

WebRequestResult result = new WebRequestResult();
URL url = new URL(this.url);
URLConnection connection = url.openConnection();
HttpURLConnection  httpConnection = (HttpURLConnection) connection;
//This here?
result.setStatusCode(httpConnection.getResponseCode());
result.setStatusDescription(httpConnection.getResponseMessage());