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

How to read the status code of Okhttp response in android

我的当前代码:

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. 如何实现

使用 Response 对象的方法 code()

response.code();

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

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

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

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

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

/** Returns the HTTP status code. */