我正在尝试从 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/