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

vfwfrxfs  于 2022-12-09  发布在  Android
关注(0)|答案(4)|浏览(329)

我的当前代码:

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.我正在尝试读取响应的状态代码
1.如何做到这一点

tzxcd3kk

tzxcd3kk1#

可以使用response.code()。从文档中
/**返回HTTP状态代码。*/

k2fxgqgv

k2fxgqgv2#

使用Response对象的方法 code()

response.code();
e4yzc0pl

e4yzc0pl3#

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

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

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

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

xuo3flqw4#

您可能还对response.isSuccessful()方法感兴趣,该方法在代码位于**[200..300)**中时返回true

相关问题