ska*_*red 9 java android httpclient http-status-code-403
我有这样的代码:
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(server);
try {
JSONObject params = new JSONObject();
params.put("email", email);
StringEntity entity = new StringEntity(params.toString(), "UTF-8");
httpPost.setHeader("Content-Type", "application/json;charset=UTF-8");
httpPost.setEntity(entity);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpClient.execute(httpPost, responseHandler);
JSONObject response = new JSONObject(responseBody);
fetchUserData(response);
saveUserInfo();
return true;
} catch (ClientProtocolException e) {
Log.d("Client protocol exception", e.toString());
return false;
} catch (IOException e) {
Log.d`enter code here`("IOEXception", e.toString());
return false;
} catch (JSONException e) {
Log.d("JSON exception", e.toString());
return false;
}
Run Code Online (Sandbox Code Playgroud)
即使我有HTTP 403禁止获取错误消息,我也希望得到响应
ant*_*nyt 13
在BasicResponseHandler只有返回成功代码(2XX)返回数据.但是,您可以非常轻松地编写自己的内容,ResponseHandler以便始终将响应的主体返回为String,例如
ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
@Override
public String handleResponse(HttpResponse response) throws ClientProtocolException, IOException {
return EntityUtils.toString(response.getEntity());
}
};
Run Code Online (Sandbox Code Playgroud)
另外,您也可以使用其他重载execute方法上HttpClient,它不需要一个ResponseHandler和返回你HttpResponse直接.然后EntityUtils.toString(response.getEntity())以同样的方式打电话.
要获取响应的状态代码,可以使用HttpResponse.getStatusLine().getStatusCode()和比较类中的一个静态int HttpStatus.代码'403'是HttpStatus.SC_FORBIDDEN.您可以根据返回的状态代码采取与您的应用程序相关的特定操作.
| 归档时间: |
|
| 查看次数: |
4089 次 |
| 最近记录: |