class DefaultHttpJsonResponse implements HttpJsonResponse {

  @Override
  public <T> T as(Class<T> clazz, Type genericType) throws IOException {
    requireNonNull(clazz, "Required non-null class");
    try {
      return JsonHelper.fromJson(responseBody, clazz, genericType);
    } catch (JsonParseException jsonEx) {
      throw new IOException(jsonEx.getLocalizedMessage(), jsonEx);
    }
  }

  protected  DefaultHttpJsonResponse(String response, int responseCode);
  protected  DefaultHttpJsonResponse(
      String response, int responseCode, Map<String, List<String>> headers);

}