Class HttpException

All Implemented Interfaces:
Serializable

public class HttpException
extends RuntimeException
HTTP Exception with support for converting the error response body into a bean.

Wraps an underlying HttpResponse with helper methods to get the response body as string or as a bean.

Example catching HttpException



   try {
       clientContext.request()
         .path("hello/saveForm")
         .formParam("email", "user@foo.com")
         .formParam("url", "notAValidUrl")
         .POST()
         .asVoid();

     } catch (HttpException e) {

       // obtain the statusCode from the exception ...
       int statusCode = e.statusCode());

       HttpResponse<?> httpResponse = e.httpResponse();

       // obtain the statusCode from httpResponse ...
       int statusCode = httpResponse.statusCode();

       // convert error response body into a bean (typically Jackson/Gson)
       final MyErrorBean errorResponse = e.bean(MyErrorBean.class);

       final Map<String, String> errorMap = errorResponse.getErrors();
       assertThat(errorMap.get("url")).isEqualTo("must be a valid URL");
       assertThat(errorMap.get("name")).isEqualTo("must not be null");
     }

 
See Also:
Serialized Form
  • Constructor Details

    • HttpException

      public HttpException​(int statusCode, String message)
      Create with status code and message.
    • HttpException

      public HttpException​(int statusCode, String message, Throwable cause)
      Create with status code, message and throwable.
    • HttpException

      public HttpException​(int statusCode, Throwable cause)
      Create with status code and throwable.
  • Method Details

    • bean

      public <T> T bean​(Class<T> cls)
      Return the response body content as a bean
      Parameters:
      cls - The type of bean to convert the response to
      Returns:
      The response as a bean
    • bodyAsString

      public String bodyAsString()
      Return the response body content as a UTF8 string.
    • bodyAsBytes

      public byte[] bodyAsBytes()
      Return the response body content as raw bytes.
    • statusCode

      public int statusCode()
      Return the HTTP status code.
    • httpResponse

      public HttpResponse<?> httpResponse()
      Return the underlying HttpResponse.