gpt4 book ai didi

java - Google Pub/Sub 模拟器 - 使用 Java 的 HTTP.POST 发布消息会抛出 400 错误请求

转载 作者:行者123 更新时间:2023-12-02 12:45:59 25 4
gpt4 key购买 nike

我的计算机上本地运行着 Google Pub/Sub 模拟器。我可以使用 YARC(另一个 REST 客户端)发布消息,其中包含以下详细信息:

网址:POST http://localhost:8311/v1/projects/my-project/topics/my-project-test:publish

有效负载:

{
"messages": [
{
"attributes": {
"1": 1
}
}
]
}

这会导致 200 响应,我可以在模拟器的控制台输出中看到已收到消息。

现在,当我尝试使用 Java 的 HTTP 库执行相同操作时,我始终收到 400 错误。代码如下:

String payload = "{\"messages\":[{\"attributes\":{\"1\":1}}]}";

HTTP.Response response = HTTP.POST(options.getPubsubRootUrl() + "/v1/projects/my-project/topics/my-project-test:publish", payload);

我检查了调试器中的 header ,发现它们是:

内容类型:application/json

内容长度:####(一些数字)

我也从 REST 客户端发送 Content-Type(Content-length 也可能在幕后发送)

据我所知,这些请求是相同的,但由于某种原因,从我的 Java 代码执行此操作会导致错误,而从 REST 客户端执行此操作则不会。

我遗漏了什么明显的东西吗?

最佳答案

原来我认为是标准 Java 类的 HTTP 类是 org.neo4j.test.server.HTTP ,当我从代码中的其他位置复制该行时,它会自动导入到 Eclipse 中。

我相信,该特定实现旨在与 Neo4j 测试服务器一起使用,并且必须执行简单 HTTP 请求之外的操作(添加一些 header 或其他内容),从而导致请求与我从 YARC 发送的请求有所不同。

关于java - Google Pub/Sub 模拟器 - 使用 Java 的 HTTP.POST 发布消息会抛出 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44782465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com