Java 给出http 400错误请求的UniRest和Spring RestTemplate之间有什么区别?
UniRest和Springrestemplate有什么区别,后者返回了400个错误请求,显然发送了相同的头和正文? 我尝试访问HubSpot API来创建博客帖子,但是使用Java 给出http 400错误请求的UniRest和Spring RestTemplate之间有什么区别?,java,spring-boot,spring-mvc,unirest,hubspot,Java,Spring Boot,Spring Mvc,Unirest,Hubspot,UniRest和Springrestemplate有什么区别,后者返回了400个错误请求,显然发送了相同的头和正文? 我尝试访问HubSpot API来创建博客帖子,但是使用RestTemplate我有一个400错误的请求,使用UniRest可以正常工作(返回一个OK响应)。然而,我不想仅仅为了一个REST调用而包含一个库:我宁愿坚持使用RestTemplate 我需要发送的请求数据 HttpMethod:POST 网址:***************** 标题:内容类型:应用程序/json
RestTemplate
我有一个400错误的请求,使用UniRest
可以正常工作(返回一个OK响应)。然而,我不想仅仅为了一个REST调用而包含一个库:我宁愿坚持使用RestTemplate
我需要发送的请求数据
- HttpMethod:
POST
- 网址:*****************
- 标题:
内容类型:应用程序/json
- 正文:(由一个类实例表示为
)blogpossendpost
使用
RestTemplate
设置请求:
HttpHeaders=newhttpheaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity请求=新的HttpEntity(blogpostSendPost,标题);
日志(request.toString());
//日志打印:
或者使用JSON
.json()方法将我的对象转换为json格式,就像您在日志中看到的那样
HttpEntity请求=新的HttpEntity(blogpossendpost.toJson(),headers);
日志(request.toString());
//日志打印:
使用.postForObject()
:400错误请求
BlogpostResponsePost-answer=restTemplate.postForObject(
"https://api.hubapi.com/content/api/v2/blog-posts?hapikey=***********",
要求
BlogpostResponsePost.class);
使用.exchange()
:400错误请求
BlogpostResponsePost-answer=restTemplate.exchange(
"https://api.hubapi.com/content/api/v2/blog-posts?hapikey=**********",
HttpMethod.POST,
要求
BlogpostResponsePost.class);
使用:好的
HttpResponse resp=Unirest
.post(“https://api.hubapi.com/content/api/v2/blog-posts?hapikey=**********")
.header(“内容类型”、“应用程序/json”)
.body(blogpostSendPost)
.asJson();
我正在使用PostMan调用我的REST SpringBoot应用程序,该应用程序正在使用这些服务:当我直接从PostMan调用HubSpot API时,它工作正常,就像使用
UniRest
lib一样
谢谢你们的帮助,伙计们 如果用检查
RestClientResponseException
的try/catch
包围RestTemplate
调用,它是否输入catch
?您可以尝试的另一件事是替换blogpostreponsepost-answer=RestTemplate.exchange(…)
使用ResponseEntity-answer=restTemplate.exchange(…)
然后从answer
中适当地提取信息。另一种可能性是:如果POST
实际上正在尝试创建资源,那么您可能首先尝试使用Unirest
,效果很好,然后尝试使用restemplate
,返回了一个错误,因为ID已被获取。在调用exchange
方法之前,您是否对restemplate
实例进行了任何操作?此外,您还可以尝试添加更多日志记录以查看发生了什么:哦,对exchange
的调用不应该返回resteEnterty
吗?如果您在restemplate
调用周围使用一个try/catch
来检查RestClientResponseException
,它是否输入了catch
?您可以尝试的另一件事是将blogpostressepost-answer=restemplate.exchange(…)
替换为ResponseEntity-answer=restemplate.exchange(…)
然后适当地从答案中提取信息。另一种可能性是:如果帖子
实际上试图创建一个资源,那么您可能首先尝试使用Unirest
,效果很好,然后尝试使用restemplate
,由于ID已被获取,因此返回了一个错误?在调用exchange
方法之前,您是否正在使用restemplate
实例执行任何操作?此外,您还可以尝试添加更多日志以查看发生了什么:哦,对交换的调用不应该返回响应属性吗?
{
"name": "My first API blog post!",
"content_group_id": 351076997
}