Get Http Status Code with OkHttp

38,344

Solution 1

You can use HttpResponse class and using that you can access the status code as follows;

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

If you are using com.squareup.okhttp.Response then you can use the code() method to get the HTTP status code.

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

Solution 2

You can get response with:

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

And get response status code with:

int responseCode = response.code();
Share:
38,344
maja
Author by

maja

Updated on January 27, 2020

Comments

  • maja
    maja about 4 years

    I'm using OkHttp to get the content of some websites.

    However, I'm not able to get the Http-Status Code from the response.

    My Java-Code:

    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();
    

    This method:

    httpResponse.toString(); 
    

    Returns the following content:

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

    Is there a way to get the statusCode as an integer, or do I need a Regular Expression to filter it out of this toString()-method?

  • maja
    maja almost 10 years
    The execute-function returns an com.squareup.okhttp.Response-object, not an org.apache.http.HttpResponse object
  • dinukadev
    dinukadev almost 10 years
    There is a method called code(square.github.io/okhttp/javadoc/com/squareup/okhttp/…) within the class you just mentioned. Are you not able to use that?