com.amazonaws.http.JsonErrorResponseHandler类的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(18.2k)|赞(0)|评价(0)|浏览(122)

本文整理了Java中com.amazonaws.http.JsonErrorResponseHandler类的一些代码示例,展示了JsonErrorResponseHandler类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。JsonErrorResponseHandler类的具体详情如下:
包路径:com.amazonaws.http.JsonErrorResponseHandler
类名称:JsonErrorResponseHandler

JsonErrorResponseHandler介绍

[英]The JSON error response handler class.
[中]JSON错误响应处理程序类。

代码示例

代码示例来源:origin: aws/aws-sdk-java

@Override
public JsonErrorResponseHandler createErrorResponseHandler(
    final List<JsonErrorUnmarshaller> errorUnmarshallers, String customErrorCodeFieldName) {
  return new JsonErrorResponseHandler(errorUnmarshallers,
                    getErrorCodeParser(customErrorCodeFieldName),
                    JsonErrorMessageParser.DEFAULT_ERROR_MESSAGE_PARSER,
                    jsonFactory);
}

代码示例来源:origin: aws/aws-sdk-java

@Override
public AmazonServiceException handle(HttpResponse response) throws Exception {
  JsonContent jsonContent = JsonContent.createJsonContent(response, jsonFactory);
  String errorCode = errorCodeParser.parseErrorCode(response, jsonContent);
  AmazonServiceException ase = createException(errorCode, jsonContent);
  // Jackson has special-casing for 'message' values when deserializing
  // Throwables, but sometimes the service passes the error message in
  // other JSON fields - handle it here.
  if (ase.getErrorMessage() == null) {
    ase.setErrorMessage(errorMessageParser.parseErrorMessage(response, jsonContent.getJsonNode()));
  }
  ase.setErrorCode(errorCode);
  ase.setServiceName(response.getRequest().getServiceName());
  ase.setStatusCode(response.getStatusCode());
  ase.setErrorType(getErrorTypeFromStatusCode(response.getStatusCode()));
  ase.setRawResponse(jsonContent.getRawContent());
  String requestId = getRequestIdFromHeaders(response.getHeaders());
  if (requestId != null) {
    ase.setRequestId(requestId);
  }
  ase.setHttpHeaders(response.getHeaders());
  return ase;
}

代码示例来源:origin: aws-amplify/aws-sdk-android

@Test
public void testJsonErrorResponseReturnsNullIfExceptionIsNull() throws Exception {
  List<JsonErrorUnmarshaller> exceptionUnmarshallers = new ArrayList<JsonErrorUnmarshaller>();
  exceptionUnmarshallers.add(new JsonErrorUnmarshaller() {
    @Override
    public AmazonServiceException unmarshall(JsonErrorResponse error) throws Exception {
      return null;
    }
  });
  handler = new JsonErrorResponseHandler(exceptionUnmarshallers);
  response = HttpResponse.builder()
      .statusCode(403)
      .content(new ByteArrayInputStream("{}".getBytes(StringUtils.UTF8)))
      .build();
  assertNull(handler.handle(response));
}

代码示例来源:origin: aws-amplify/aws-sdk-android

@Override
public AmazonServiceException handle(HttpResponse response) throws Exception {
  JsonErrorResponse error;
  try {
    error = JsonErrorResponse.fromResponse(response);
  } catch (IOException e) {
    throw new AmazonClientException("Unable to parse error response", e);
  }
  AmazonServiceException ase = runErrorUnmarshallers(error);
  if (ase == null)
    return null;
  ase.setStatusCode(response.getStatusCode());
  if (response.getStatusCode() < HTTP_STATUS_INTERNAL_SERVER_ERROR) {
    ase.setErrorType(ErrorType.Client);
  } else {
    ase.setErrorType(ErrorType.Service);
  }
  ase.setErrorCode(error.getErrorCode());
  for (Entry<String, String> headerEntry : response.getHeaders().entrySet()) {
    if ("X-Amzn-RequestId".equalsIgnoreCase(headerEntry.getKey())) {
      ase.setRequestId(headerEntry.getValue());
    }
  }
  return ase;
}

代码示例来源:origin: aws-amplify/aws-sdk-android

@Test
public void testJsonErrorResponseReturnsServiceErrorTypeIfErrorStatus5XX() throws Exception {
  List<JsonErrorUnmarshaller> exceptionUnmarshallers = new ArrayList<JsonErrorUnmarshaller>();
  exceptionUnmarshallers.add(new JsonErrorUnmarshaller() {
    @Override
    public AmazonServiceException unmarshall(JsonErrorResponse error) throws Exception {
      return new AmazonServiceException("TestException");
    }
  });
  handler = new JsonErrorResponseHandler(exceptionUnmarshallers);
  response = HttpResponse.builder()
      .statusCode(500)
      .content(new ByteArrayInputStream("{}".getBytes(StringUtils.UTF8)))
      .build();
  AmazonServiceException returnedException = handler.handle(response);
  assertEquals(returnedException.getErrorType(), ErrorType.Service);
}

代码示例来源:origin: com.amazonaws/aws-android-sdk-core

@Override
public AmazonServiceException handle(HttpResponse response) throws Exception {
  JsonErrorResponse error;
  try {
    error = JsonErrorResponse.fromResponse(response);
  } catch (IOException e) {
    throw new AmazonClientException("Unable to parse error response", e);
  }
  AmazonServiceException ase = runErrorUnmarshallers(error);
  if (ase == null)
    return null;
  ase.setStatusCode(response.getStatusCode());
  if (response.getStatusCode() < HTTP_STATUS_INTERNAL_SERVER_ERROR) {
    ase.setErrorType(ErrorType.Client);
  } else {
    ase.setErrorType(ErrorType.Service);
  }
  ase.setErrorCode(error.getErrorCode());
  for (Entry<String, String> headerEntry : response.getHeaders().entrySet()) {
    if ("X-Amzn-RequestId".equalsIgnoreCase(headerEntry.getKey())) {
      ase.setRequestId(headerEntry.getValue());
    }
  }
  return ase;
}

代码示例来源:origin: com.amazonaws/aws-java-sdk-core

@Override
public JsonErrorResponseHandler createErrorResponseHandler(
    final List<JsonErrorUnmarshaller> errorUnmarshallers, String customErrorCodeFieldName) {
  return new JsonErrorResponseHandler(errorUnmarshallers,
                    getErrorCodeParser(customErrorCodeFieldName),
                    JsonErrorMessageParser.DEFAULT_ERROR_MESSAGE_PARSER,
                    jsonFactory);
}

代码示例来源:origin: aws-amplify/aws-sdk-android

@Test
  public void testJsonErrorResponseReturnsXAmzRequestId() throws Exception {
    List<JsonErrorUnmarshaller> exceptionUnmarshallers = new ArrayList<JsonErrorUnmarshaller>();
    exceptionUnmarshallers.add(new JsonErrorUnmarshaller() {

      @Override
      public AmazonServiceException unmarshall(JsonErrorResponse error) throws Exception {
        return new AmazonServiceException("TestException");
      }

    });
    handler = new JsonErrorResponseHandler(exceptionUnmarshallers);
    response = HttpResponse.builder()
        .statusCode(500)
        .header("X-Amzn-RequestId", "55")
        .content(new ByteArrayInputStream("{}".getBytes(StringUtils.UTF8)))
        .build();
    AmazonServiceException returnedException = handler.handle(response);
    assertEquals(returnedException.getRequestId(), "55");
  }
}

代码示例来源:origin: com.amazonaws/aws-java-sdk-core

@Override
public AmazonServiceException handle(HttpResponse response) throws Exception {
  JsonContent jsonContent = JsonContent.createJsonContent(response, jsonFactory);
  String errorCode = errorCodeParser.parseErrorCode(response, jsonContent);
  AmazonServiceException ase = createException(errorCode, jsonContent);
  // Jackson has special-casing for 'message' values when deserializing
  // Throwables, but sometimes the service passes the error message in
  // other JSON fields - handle it here.
  if (ase.getErrorMessage() == null) {
    ase.setErrorMessage(errorMessageParser.parseErrorMessage(response, jsonContent.getJsonNode()));
  }
  ase.setErrorCode(errorCode);
  ase.setServiceName(response.getRequest().getServiceName());
  ase.setStatusCode(response.getStatusCode());
  ase.setErrorType(getErrorTypeFromStatusCode(response.getStatusCode()));
  ase.setRawResponse(jsonContent.getRawContent());
  String requestId = getRequestIdFromHeaders(response.getHeaders());
  if (requestId != null) {
    ase.setRequestId(requestId);
  }
  ase.setHttpHeaders(response.getHeaders());
  return ase;
}

代码示例来源:origin: com.gluonhq/aws-java-sdk-core

@Override
public AmazonServiceException handle(HttpResponse response) throws Exception {
  JsonErrorResponse error;
  try {
    error = JsonErrorResponse.fromResponse(response);
  } catch (IOException e) {
    throw new AmazonClientException("Unable to parse error response", e);
  }
  AmazonServiceException ase = runErrorUnmarshallers(error);
  if (ase == null)
    return null;
  ase.setStatusCode(response.getStatusCode());
  if (response.getStatusCode() < HTTP_STATUS_INTERNAL_SERVER_ERROR) {
    ase.setErrorType(ErrorType.Client);
  } else {
    ase.setErrorType(ErrorType.Service);
  }
  ase.setErrorCode(error.getErrorCode());
  for (Entry<String, String> headerEntry : response.getHeaders().entrySet()) {
    if ("X-Amzn-RequestId".equalsIgnoreCase(headerEntry.getKey())) {
      ase.setRequestId(headerEntry.getValue());
    }
  }
  return ase;
}

代码示例来源:origin: aws-amplify/aws-sdk-android

private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request,
      HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
      ExecutionContext executionContext) {
    request.setEndpoint(endpoint);
    request.setTimeOffset(timeOffset);

    AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
    AWSCredentials credentials;
    awsRequestMetrics.startEvent(Field.CredentialsRequestTime);
    try {
      credentials = awsCredentialsProvider.getCredentials();
    } finally {
      awsRequestMetrics.endEvent(Field.CredentialsRequestTime);
    }

    AmazonWebServiceRequest originalRequest = request.getOriginalRequest();
    if (originalRequest != null && originalRequest.getRequestCredentials() != null) {
      credentials = originalRequest.getRequestCredentials();
    }

    executionContext.setCredentials(credentials);
    JsonErrorResponseHandler errorResponseHandler = new JsonErrorResponseHandler(
        jsonErrorUnmarshallers);
    Response<X> result = client.execute(request, responseHandler,
        errorResponseHandler, executionContext);
    return result;
  }
}

代码示例来源:origin: Nextdoor/bender

@Override
public AmazonServiceException handle(HttpResponse response) throws Exception {
  JsonContent jsonContent = JsonContent.createJsonContent(response, jsonFactory);
  String errorCode = errorCodeParser.parseErrorCode(response, jsonContent);
  AmazonServiceException ase = createException(errorCode, jsonContent);
  // Jackson has special-casing for 'message' values when deserializing
  // Throwables, but sometimes the service passes the error message in
  // other JSON fields - handle it here.
  if (ase.getErrorMessage() == null) {
    ase.setErrorMessage(errorMessageParser.parseErrorMessage(response, jsonContent.getJsonNode()));
  }
  ase.setErrorCode(errorCode);
  ase.setServiceName(response.getRequest().getServiceName());
  ase.setStatusCode(response.getStatusCode());
  ase.setErrorType(getErrorTypeFromStatusCode(response.getStatusCode()));
  ase.setRawResponse(jsonContent.getRawContent());
  String requestId = getRequestIdFromHeaders(response.getHeaders());
  if (requestId != null) {
    ase.setRequestId(requestId);
  }
  ase.setHttpHeaders(response.getHeaders());
  return ase;
}

代码示例来源:origin: aws-amplify/aws-sdk-android

private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request,
      HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
      ExecutionContext executionContext) {
    request.setEndpoint(endpoint);
    request.setTimeOffset(timeOffset);

    AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
    AWSCredentials credentials;
    awsRequestMetrics.startEvent(Field.CredentialsRequestTime);
    try {
      credentials = awsCredentialsProvider.getCredentials();
    } finally {
      awsRequestMetrics.endEvent(Field.CredentialsRequestTime);
    }

    AmazonWebServiceRequest originalRequest = request.getOriginalRequest();
    if (originalRequest != null && originalRequest.getRequestCredentials() != null) {
      credentials = originalRequest.getRequestCredentials();
    }

    executionContext.setCredentials(credentials);
    JsonErrorResponseHandler errorResponseHandler = new JsonErrorResponseHandler(
        jsonErrorUnmarshallers);
    Response<X> result = client.execute(request, responseHandler,
        errorResponseHandler, executionContext);
    return result;
  }
}

代码示例来源:origin: aws-amplify/aws-sdk-android

private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request,
      HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
      ExecutionContext executionContext) {
    request.setEndpoint(endpoint);
    request.setTimeOffset(timeOffset);

    AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
    AWSCredentials credentials;
    awsRequestMetrics.startEvent(Field.CredentialsRequestTime);
    try {
      credentials = awsCredentialsProvider.getCredentials();
    } finally {
      awsRequestMetrics.endEvent(Field.CredentialsRequestTime);
    }

    AmazonWebServiceRequest originalRequest = request.getOriginalRequest();
    if (originalRequest != null && originalRequest.getRequestCredentials() != null) {
      credentials = originalRequest.getRequestCredentials();
    }

    executionContext.setCredentials(credentials);
    JsonErrorResponseHandler errorResponseHandler = new JsonErrorResponseHandler(
        jsonErrorUnmarshallers);
    Response<X> result = client.execute(request, responseHandler,
        errorResponseHandler, executionContext);
    return result;
  }
}

代码示例来源:origin: aws-amplify/aws-sdk-android

private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request,
      HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
      ExecutionContext executionContext) {
    request.setEndpoint(endpoint);
    request.setTimeOffset(timeOffset);

    AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
    AWSCredentials credentials;
    awsRequestMetrics.startEvent(Field.CredentialsRequestTime);
    try {
      credentials = awsCredentialsProvider.getCredentials();
    } finally {
      awsRequestMetrics.endEvent(Field.CredentialsRequestTime);
    }

    AmazonWebServiceRequest originalRequest = request.getOriginalRequest();
    if (originalRequest != null && originalRequest.getRequestCredentials() != null) {
      credentials = originalRequest.getRequestCredentials();
    }

    executionContext.setCredentials(credentials);
    JsonErrorResponseHandler errorResponseHandler = new JsonErrorResponseHandler(
        jsonErrorUnmarshallers);
    Response<X> result = client.execute(request, responseHandler,
        errorResponseHandler, executionContext);
    return result;
  }
}

代码示例来源:origin: aws-amplify/aws-sdk-android

private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request,
      HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
      ExecutionContext executionContext) {
    request.setEndpoint(endpoint);
    request.setTimeOffset(timeOffset);

    AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
    AWSCredentials credentials;
    awsRequestMetrics.startEvent(Field.CredentialsRequestTime);
    try {
      credentials = awsCredentialsProvider.getCredentials();
    } finally {
      awsRequestMetrics.endEvent(Field.CredentialsRequestTime);
    }

    AmazonWebServiceRequest originalRequest = request.getOriginalRequest();
    if (originalRequest != null && originalRequest.getRequestCredentials() != null) {
      credentials = originalRequest.getRequestCredentials();
    }

    executionContext.setCredentials(credentials);
    JsonErrorResponseHandler errorResponseHandler = new JsonErrorResponseHandler(
        jsonErrorUnmarshallers);
    Response<X> result = client.execute(request, responseHandler,
        errorResponseHandler, executionContext);
    return result;
  }
}

代码示例来源:origin: aws-amplify/aws-sdk-android

private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request,
      HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
      ExecutionContext executionContext) {
    request.setEndpoint(endpoint);
    request.setTimeOffset(timeOffset);

    AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
    AWSCredentials credentials;
    awsRequestMetrics.startEvent(Field.CredentialsRequestTime);
    try {
      credentials = awsCredentialsProvider.getCredentials();
    } finally {
      awsRequestMetrics.endEvent(Field.CredentialsRequestTime);
    }

    AmazonWebServiceRequest originalRequest = request.getOriginalRequest();
    if (originalRequest != null && originalRequest.getRequestCredentials() != null) {
      credentials = originalRequest.getRequestCredentials();
    }

    executionContext.setCredentials(credentials);
    JsonErrorResponseHandler errorResponseHandler = new JsonErrorResponseHandler(
        jsonErrorUnmarshallers);
    Response<X> result = client.execute(request, responseHandler,
        errorResponseHandler, executionContext);
    return result;
  }
}

代码示例来源:origin: aws-amplify/aws-sdk-android

private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request,
      HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
      ExecutionContext executionContext) {
    request.setEndpoint(endpoint);
    request.setTimeOffset(timeOffset);

    AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
    AWSCredentials credentials;
    awsRequestMetrics.startEvent(Field.CredentialsRequestTime);
    try {
      credentials = awsCredentialsProvider.getCredentials();
    } finally {
      awsRequestMetrics.endEvent(Field.CredentialsRequestTime);
    }

    AmazonWebServiceRequest originalRequest = request.getOriginalRequest();
    if (originalRequest != null && originalRequest.getRequestCredentials() != null) {
      credentials = originalRequest.getRequestCredentials();
    }

    executionContext.setCredentials(credentials);
    JsonErrorResponseHandler errorResponseHandler = new JsonErrorResponseHandler(
        jsonErrorUnmarshallers);
    Response<X> result = client.execute(request, responseHandler,
        errorResponseHandler, executionContext);
    return result;
  }
}

代码示例来源:origin: aws-amplify/aws-sdk-android

private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request,
      HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
      ExecutionContext executionContext) {
    request.setEndpoint(endpoint);
    request.setTimeOffset(timeOffset);

    AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
    AWSCredentials credentials;
    awsRequestMetrics.startEvent(Field.CredentialsRequestTime);
    try {
      credentials = awsCredentialsProvider.getCredentials();
    } finally {
      awsRequestMetrics.endEvent(Field.CredentialsRequestTime);
    }

    AmazonWebServiceRequest originalRequest = request.getOriginalRequest();
    if (originalRequest != null && originalRequest.getRequestCredentials() != null) {
      credentials = originalRequest.getRequestCredentials();
    }

    executionContext.setCredentials(credentials);
    JsonErrorResponseHandler errorResponseHandler = new JsonErrorResponseHandler(
        jsonErrorUnmarshallers);
    Response<X> result = client.execute(request, responseHandler,
        errorResponseHandler, executionContext);
    return result;
  }
}

代码示例来源:origin: aws-amplify/aws-sdk-android

private <X, Y extends AmazonWebServiceRequest> Response<X> invoke(Request<Y> request,
      HttpResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
      ExecutionContext executionContext) {
    request.setEndpoint(endpoint);
    request.setTimeOffset(timeOffset);

    AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
    AWSCredentials credentials;
    awsRequestMetrics.startEvent(Field.CredentialsRequestTime);
    try {
      credentials = awsCredentialsProvider.getCredentials();
    } finally {
      awsRequestMetrics.endEvent(Field.CredentialsRequestTime);
    }

    AmazonWebServiceRequest originalRequest = request.getOriginalRequest();
    if (originalRequest != null && originalRequest.getRequestCredentials() != null) {
      credentials = originalRequest.getRequestCredentials();
    }

    executionContext.setCredentials(credentials);
    JsonErrorResponseHandler errorResponseHandler = new JsonErrorResponseHandler(
        jsonErrorUnmarshallers);
    Response<X> result = client.execute(request, responseHandler,
        errorResponseHandler, executionContext);
    return result;
  }
}

相关文章