如何在android中读取Okhttp响应的状态码

时间:2015-05-26 09:44:12

标签: android okhttp

我的当前代码:

public static InputStream postRequestWithPayload(String url, String mJsonReq) throws Exception {
         Response response;
         try{
            RequestBody body = RequestBody.create(JSON, mJsonReq);
            client.setConnectTimeout(20, TimeUnit.SECONDS); // connect timeout
            client.setReadTimeout(20, TimeUnit.SECONDS);    // socket timeout
            Request request = new Request.Builder()
                    .url(url)
                    .post(body)
                    .addHeader(AppConstants.OKHTTP_HEADER_GENERAL_USERNAME, AppController.getUserName())
                    .addHeader(AppConstants.OKHTTP_HEADER_GENERAL_AUTHTOLKEN, AppController.getToken().toString())
                            //.addHeader(AppConstants.OKHTTP_HEADER_GENERAL_APP_IDENTIFIER, AppConstants.OKHTTP_HEADER_GENERAL_APP_IDENTIFIER_VALUE)
                    .build();
            response = client.newCall(request).execute();

        }catch(Exception e){
            throw e;
         }
         return response.body().byteStream();
     }

我想做什么:

  1. 我正在尝试阅读回复的状态代码
  2. 如何实现此目标

3 个答案:

答案 0 :(得分:4)

您可以使用response.code()。从文档

  

/ **返回HTTP状态代码。 * /

答案 1 :(得分:2)

使用Response对象的方法 code()

response.code();

答案 2 :(得分:1)

您可以使用HttpResponse类并使用它来访问状态代码,如下所示;

HttpResponse httpResponse = client.newCall(request).execute(); 
httpResponse.getStatusLine().getStatusCode();

如果您使用com.squareup.okhttp.Response,则可以使用code()方法获取HTTP状态代码。

Response httpResponse = client.newCall(request).execute(); 
httpResponse.code();