public String getOrderdata(final String poNumber) throws Exception {
String apiResponse = null;
try {
ObjectMapper objectMapper = new ObjectMapper();
String url = ApiHost + ApiPath;
JSONObject requestJson = new JSONObject();
requestJson.put("orderNumber", poNumber);
HttpEntity<String> request = new HttpEntity<>(requestJson.toString(), getHttpHeaders());
log.info("request is " + request);
log.info("Api url={}", url);
ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);
log.info("Inside ServiceImpl, response is {}", response);
if (response != null && response.hasBody() && response.getStatusCode() == HttpStatus.OK) {
apiResponse = objectMapper.readValue(response.getBody(), String.class);
} else if (response != null && response.getStatusCode() == HttpStatus.BAD_REQUEST) {
log.info("event=getOrderdata: Received bad request exception from Api and Response is {} : ", response);
} else {
log.error("event=getOrderdata: Response is null= {} : ", response);
throw new RuntimeException("Error While fetching details from api");
}
} catch (HttpClientErrorException e) {
log.info("event=getOrderdata: HttpClientErrorException error=", e);
} catch (Exception exe) {
log.error("event=getOrderdata: error=", exe);
//throw exe;
}
return apiResponse;
}
public HttpHeaders getHttpHeaders() {
HttpHeaders headers = new HttpHeaders();
try {
val token = Client.getAccessToken(roleArn, scope);
headers.add(HttpHeaders.AUTHORIZATION, "Bearer " + token);
headers.setContentType(MediaType.APPLICATION_JSON);
return headers;
} catch (Exception ex) {
throw new RuntimeException("Error trying to generate token", ex);
}
}
我正在使用springboot restTemplate。postForEntity()。我能够完成postman并尝试为其编写java代码。我正在使用post调用访问api。对于该endpoint令牌和以下json体是必需的。我能够生成令牌,下面的请求是通过上面的java代码生成的,但行号是restTemplate。postForEntity()我收到HttpClientErrorException:400个错误请求。我正在记录响应字符串,但由于上述异常,它没有打印。请帮帮我。
JsonBody:{"orderNumber":"PO0012345"}
形成的请求是:
request is <{"orderNumber":"PO0012345"},{Authorization=[Bearer eyExampleToken], Content-Type=[application/json]}>
请查找包含邮递员请求正文的附件。单击此链接将其打开,在此处输入图像描述
在此行上放置断点:
HttpEntity<String> request = new HttpEntity<>(requestJson.toString(), getHttpHeaders());
检查值requestJson。toString()。它和你成功寄来的邮递员的信一样吗?比较它们。我认为任何人都很难猜测为什么服务器会以400作为响应。您还可以在Java代码中比较Postman设置的标题与您的标题。
获取Spring Rest控制器Web服务的以下异常:- org.springframework.web.client.HttpClientError异常: 415org.springframework.web.client.不支持的媒体类型默认响应错误andler.java:91org.springframework.web.client.的错误(默认响应错误andler.java:91)RES
我正在打一个服务来查找一个人的详细信息,响应是xml格式的,如下所示: 我正在使用Spring RestTempate并将响应映射到以下POJO, 我使用rest模板调用服务, 但我一直得到异常,org.springframework.web.client.RestClientExcture:无法提取响应:没有找到适合的HttpMessageConzer响应类型[类[Lcom.cdk.datalo
如何注册以下接口的具体实现(通过applicationcontext.xml)(xml配置)? “指定的类是一个接口” https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/reactive/function/client/WebClient.html 完整代码 进口 显然,这是行不通的 (源自
编辑:当前仍将此作为错误获取:2019-08-08 15:12:50.876警告3164---[io-8080-exec-10]。w、 s.m.s.DefaultHandlerExceptionResolver:已解析[org.springframework.web.HttpMediaTypeNotSupportedException:内容类型“”不受支持] 我真的不知道为什么它说内容类型不支持.
我读了很多关于正确的超文本传输协议状态代码返回客户端请求错误的帖子和文章。其他人建议使用400,因为它在RFC 7231中被重新定义了,尽管我不确定给出的例子是否涵盖了我脑海中所有的客户端错误,因为这些例子是语法性的。 400(错误请求)状态代码表示服务器无法或将不会处理请求,原因是被认为是客户端错误(例如,格式错误的请求语法、无效的请求 消息帧或欺骗性请求路由)。 我确实在rfc 7231的附录
我正在RestTemplate中使用exchange for GET方法。但是在exchange方法中传递requestEntity时,我得到了400个错误的请求。下面是我正在使用的代码。 生成URL: 我尝试从postman访问producer URL,其标题为Content-Type:Application/JSON,正文为{“firstName”:“a”,“lastName”:“b”,“da