gpt4 book ai didi

java - Java 中的 IoT 模块 GET 请求

转载 作者:行者123 更新时间:2023-12-02 12:52:33 27 4
gpt4 key购买 nike

我正在尝试从 IoT 模块 (Advantech WISE-4012) 上运行的 RESTful Web 服务器读取 JSON 响应。根据文档,任何 GET 请求都应以这种形式发出

GET /ai_value/slot_0/ch_0

任何 GET 请求的 Java 实现(Java 库、Apache 等),无论如何,都会在请求末尾附加协议(protocol)签名 HTTP/1.1。例如:

GET http://192.168.0.14/ai_value/slot_0/ch_0 HTTP/1.1

正因为如此(可能),到目前为止我尝试过的每个客户端都收到错误 400(错误请求)。我发现的唯一工作方法是通过 Google Chrome 浏览器上的地址栏发送一个简单的请求(有时我会收到响应,有时也会收到错误的请求错误)。 如何按照文档中的描述编写简单明了的 GET 请求的 java 实现?我如何测试末尾没有 HTTP/1.1 的自定义 GET 请求? 我尝试过的每个 chrome 扩展(高级 REST 客户端、Postman)都在末尾添加了协议(protocol)版本,所以我没有机会验证如果这就是我收到错误请求错误的原因。

编辑:

这是来自高级 REST 客户端的响应 header

Connection: close
Content-Type: application/json
Server: WISE-4000/8.1.0020

源消息如下:

GET /ai_value/slot_0/ch_0 HTTP/1.1
HOST: 192.168.0.14

文档之间唯一不匹配的是前面提到的 HTTP/1.1 签名。添加“accept: application/json”也没有什么区别

最佳答案

深入研究文档后,看起来默认超时(即 720 秒)是导致问题的原因。似乎没有任何方法可以解决这个问题(理想情况下,系统应该在成功请求后重置时间,并且我们应该只在 720 秒不活动后得到 400 - 或 403 ,理想情况下)。

我想向 WISE-4012 的 API 开发人员推荐几点(如果他们与您联系):

  • 添加有关身份验证和超时的简短文档(每个错误响应可能会包含更多响应代码和错误消息)
  • 为 API 访问启用 OAuth

就当前的实现而言,我想您需要进行基本的身份验证并在每个请求中传递用户名/密码,或者在每个 API 请求中添加身份验证 header 以获得成功的响应,而无需任何 400s.

关于java - Java 中的 IoT 模块 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44561894/

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