UniRest和Spring RestTemboard有什么区别,它们会返回一个400错误请求,发送的标头和正文显然相同?
我试图访问HubSpot API来创建博客帖子,但使用RestTemplate时出现了400个错误请求错误,而使用UniRest可以正常工作(返回OK响应)。然而,我不想仅仅为了一个REST调用就包含一个库:我宁愿坚持使用RestTemplate。
POST
Content-Type:应用程序/json
blogpostSendPost
进一步向下){
"name": "My first API blog post!",
"content_group_id": 351076997
}
设置请求:
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<BlogpostSendPost> request = new HttpEntity<>(blogpostSendPost, headers);
log(request.toString());
//LOG PRINT: <BlogpostSendPost(name=My first API blog post!, content_group_id=351076997),[Content-Type:"application/json"]>
或在JSON中
这个json()方法将我的对象转换为json格式,就像您在日志中看到的那样
HttpEntity<String> request = new HttpEntity<>(blogpostSendPost.toJson(), headers);
log(request.toString());
//LOG PRINT: <{"name":"My first API blog post!","content_group_id":"351076997"},[Content-Type:"application/json"]>
使用<代码>。postForObject():400错误请求
BlogpostResponsePost answer = restTemplate.postForObject(
"https://api.hubapi.com/content/api/v2/blog-posts?hapikey=***********",
request,
BlogpostResponsePost.class);
使用<代码>。exchange():400错误请求
BlogpostResponsePost answer = restTemplate.exchange(
"https://api.hubapi.com/content/api/v2/blog-posts?hapikey=**********",
HttpMethod.POST,
request,
BlogpostResponsePost.class);
HttpResponse<JsonNode> resp = Unirest
.post("https://api.hubapi.com/content/api/v2/blog-posts?hapikey=**********")
.header("Content-Type", "application/json")
.body(blogpostSendPost)
.asJson();
我使用PostMan调用我的REST-SpringBoot应用程序,该应用程序使用这些服务:当我直接从PostMan调用HubSpot API时,它工作正常,就像使用UniRest库一样。
谢谢你们的帮助!!
请参考https://community.hubspot.com/t5/APIs-Integrations/Getting-400-Bad-Request-when-trying-to-add-a-Blog-Post/td-p/306532
直接传递请求对象,而不是将请求对象转换为json。这对我很有效。
//尝试1:联系人-RestTemplate-OK-已创建联系人(API V1)
HttpEntity request1=新HttpEntity
问题内容: 如何区分Java中的错误和异常? 问题答案: 错误“表示合理的应用程序不应尝试捕获的严重问题”。 而 异常“指示合理的应用程序可能想要捕获的条件”。 错误及其子类都是例外。所有其他异常类都是异常。 检查 异常通常是程序可以从中恢复的异常,最好以编程方式从此类异常中恢复。示例包括,等。希望程序员使用try- catch块检查这些异常,或者将其扔回调用方。 另一方面,我们有 未经检查的 异
问题内容: 我在大型代码库上运行JUnit测试,并且我意识到有时我会收到“错误”,而有时我会收到“失败”。有什么不同? 问题答案: 好的,我刚刚注意到一个模式,认为我已经弄清楚了(如果我错了,请纠正我)。在我看来,失败是指您的测试用例失败时,即您的断言不正确。错误是尝试实际运行测试时发生的意外错误- 异常等。
问题内容: 在Python,有什么之间的差异模块?为什么有三个?他们似乎在做同样的事情… 问题答案: 我知道已经有人说过了,但我强烈建议你使用软件包。 如果你使用的是除python之外的语言,则可能是在考虑并且易于使用,代码不多且功能强大,这就是我以前的想法。但是该程序包是如此有用且太短,以至于每个人都应该使用它。 首先,它支持完全宁静的API,并且非常简单: 无论是GET / POST,你都无需
问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型
问题内容: 当我发送AJAX Post请求并在send()方法的queryString中发送参数时, Chrome DeveloperTool的XHR捕获工具显示请求有效负载下的参数。当我使用jquery的post函数时,该工具会在“表单数据”部分下显示参数。 有什么区别 ? 问题答案: 您尚未提供有关如何使用send函数的足够信息,但我假设您未设置mime类型来指定您要发送表单数据 在这种情况下