【问题标题】:codenameone POST request BODY代号一个 POST 请求正文
【发布时间】:2017-03-26 06:13:51
【问题描述】:

我正在使用 CodenameOne 向 REST API 发送 POST 请求。 它与 GET 完美配合,因为我不必传递带有消息的 BODY。 请问有人可以告诉我如何在我的帖子中传递一个 BODY 吗?

这是我用来连接的代码...

    try {
        ConnectionRequest connReq = new ConnectionRequest();

        connReq.setPost(true);
        connReq.addRequestHeader("Authorization", "54321);
        connReq.addRequestHeader("client_id","12345");
        connReq.addRequestHeader("Content-Type","application/json");
        connReq.setUrl("https://myapi.com/connect");
        connReq.setHttpMethod("POST");
        NetworkManager.getInstance().addToQueueAndWait(connReq);
        Map<String,Object> result = new JSONParser().parseJSON(new InputStreamReader(new ByteArrayInputStream(connReq.getResponseData()), "UTF-8"));
        return result; 
    }
    catch(Exception err) {
        System.err.println(err);
        return null;
    }   

我在这里找到了一些文档 - 但我不太明白他们在告诉我什么...

https://www.codenameone.com/javadoc/com/codename1/io/ConnectionRequest.html#buildRequestBody-java.io.OutputStream-

谢谢

【问题讨论】:

    标签: java rest netbeans codenameone


    【解决方案1】:

    如果您想要一个标准的“FORM”样式的帖子,如果您在 HTML 表单中有字段,您会得到一个,只需使用 addArgument,就像使用 GET 一样。它适用于POST 就好了。

    如果你想“硬编码”你的身体,例如一些网络服务期望 JSON 是请求的主体,只需将其写入您找到的 buildRequestBody 方法中的输出流即可。

    【讨论】:

    • 我正在尝试这个.... ByteArrayOutputStream bOutput = new ByteArrayOutputStream(); bOutput.write("\"Key\": \"Value\"".getBytes());尝试 { ..... connReq.buildRequestBody(bOutput); ..... } 但我收到此错误... buildRequestBody(OutputStream) 已保护 ConnectionRequest 中的访问我做错了什么?
    • buildRequestBody 方法是一个回调,您应该通过继承 ConnectionRequest 来覆盖它。
    • 谢谢 - 我已经这样做了,现在至少它正在构建。然而,身体仍然是空白的。当我调试并逐步完成时,我可以看到传递到我的新覆盖的 buildRequestBody 方法的数据是有效的。我在监视窗口中注意到“数据”字节 [] 变量为空。应该填充吗?
    • 我猜你陷入了 Java 的内部类变量作用域陷阱之一,我需要查看代码和特定行来帮助你解决这个问题。我建议用修改后的代码提交一个新问题,或者用最新的代码编辑这个问题。如果您选择后一个选项,请不要忘记在此处发表评论,因为我不会收到有关问题编辑的通知
    • 我发布了一个新问题。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2010-11-06
    • 2019-05-11
    • 2016-04-11
    相关资源
    最近更新 更多