Java 给出http 400错误请求的UniRest和Spring RestTemplate之间有什么区别?

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

UniRest和Springrestemplate有什么区别,后者返回了400个错误请求,显然发送了相同的头和正文?

我尝试访问HubSpot API来创建博客帖子,但是使用
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
}