java - codenameone REST API POST 请求正文

标签 java rest http mobile codenameone

我正在尝试从 AWS API Gateway 上的 REST API 调用 POST 方法。使用 curl(对于 POST)从命令行正确调用 API,浏览器使用 GET,所以我知道它工作正常,但我似乎无法找到使用 ConnectionRequest 类在代号 1 上调用 POST 方法的正确方法,阅读文档中的 addArgument() 和 setRequestBody() 并且他们说,它们是排他的,所以我都尝试了,但我的结果是:

  • setRequestBody() :似乎它没有向请求发送任何内容,尝试发送我在 curl 上发送的相同 JSON requestBody,API 响应但 requestBody 是“未定义的”(在 AWS API 网关日志中检查),也尝试过request.addRequestHeader("测试", "测试");同样, header 在 AWS 日志中是“未定义的”,但会在命令行调用 API 时显示。
  • addArgument():API 返回“400 错误请求”。

我正在使用 request.setPost(true); 但也有 setHttpMethod(String value);所以我不确定我是否做对了。

调用 POST REST 并向其发送参数的正确方法是什么?有什么方法可以调试正在发送的请求吗?比如打印等效的 CURL 调用或类似的东西?或者有什么方法可以直接在 CN1 上执行 CURL 请求?

最佳答案

这与分段上传不完全相同,但我正在使用 AWS upload code here ,如果您更新问题(和下面的评论),我可以包含代码以在代号一中执行准确的 curl 请求。

至于调用 setPost(true) 的问题就足够了,因为它会隐式设置 post 方法。如果您想执行 PUT 之类的操作,http 方法很有用。

选择请求正文与参数取决于您的请求类型。

关于java - codenameone REST API POST 请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43423020/

相关文章:

java - PRTG REST API 与 JAX-RS

php - Rest API 如何通过基本身份验证进行身份验证?

java - 如何接受 JAX-RS( Jersey )中的 Base64 编码数据?

java - Android 中的 HTTPURL 连接速度慢

http - 处理 http header 中的空格

java - VM 如何选择正确的方法来执行?

java - 使用 Kotlin 的 RSocket retrieveFlux()

java - 重型后端中间层服务器应用程序中的 Thread Local 建议

对预检请求的 Angular HttpClient 响应未通过访问控制检查 : It does not have HTTP ok status

c# - 将一个二维数组转换为两个一维数组