我试图从aws api网关上的restapi调用post方法。api是从命令行使用curl(for post)正确调用的,而浏览器使用get,所以我知道它工作正常,但是我似乎找不到正确的方法来使用connectionrequest类调用codename one上的post方法,阅读文档时,他们说addArgument()和setrequestBody()是互斥的,所以我尝试了这两种方法,但我的结果是:
setrequestbody():似乎它没有向请求发送任何内容,尝试发送与我在curl上发送的相同的json requestbody,api响应,但requestbody是“未定义的”(在aws api网关日志中选中),还尝试了request.addrequestheader(“test”,“test”);同样,在aws日志中,头是“未定义的”,但在命令行上调用api时显示。
addArgument():API重新返回“400错误请求”。
即时消息使用request.setpost(true);
但是也有sethttpmethod(字符串值);所以我不确定我做的是否正确。
调用post rest并发送参数的正确方法是什么?有什么方法可以调试发送的请求吗?比如打印等效的旋度调用或类似的东西?或者有什么方法可以直接在cn1上执行curl请求?

最佳答案

这与多部分上传并不完全相同,但我有正在工作的awsupload code here,如果您更新问题(和下面的注释),我可以在codename one中包含执行准确curl请求的代码。
至于问题,调用setPost(true)就足够了,因为它将隐式设置post方法。如果您想执行类似PUT的操作,http方法非常有用。
选择请求正文与参数取决于您拥有的请求类型。

10-05 23:30
查看更多