31

我正在使用 OkHttp 来获取一些网站的内容。

但是,我无法从响应中获取 Http-Status Code。

我的 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() 方法中过滤出来?

4

2 回答 2

64

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

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

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

Response httpResponse = client.newCall(request).execute(); 
httpResponse.code();
于 2014-06-01T14:08:45.167 回答
35

您可以通过以下方式获得响应:

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

并通过以下方式获取响应状态代码:

int responseCode = response.code();
于 2014-06-04T12:16:38.267 回答