Получить код состояния Http с помощью OkHttp

Я использую OkHttp для получения содержимого некоторых веб-сайтов.

Однако я не могу получить код Http-Status из ответа.

Мой Java-код:

OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
                    .url("https://www.google.at")
                    .build();
Response httpResponse = client.newCall(request).execute();    
String html = httpResponse.body().string();

Этот метод:

httpResponse.toString(); 

Возвращает следующий контент:

Response{protocol=http/1.1, code=200, message=OK, url=https://www.google.at}

Есть ли способ получить statusCode как целое число или мне нужно регулярное выражение, чтобы отфильтровать его из этого метода toString()?

Ответы

Ответ 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();

Ответ 2

Вы можете получить ответ с помощью:

Response response = client.newCall(request).execute();

И получите код состояния ответа с помощью:

int responseCode = response.code();