【问题标题】:codenameone send JSON BODY in POST代号在 POST 中发送 JSON BODY
【发布时间】:2017-03-21 14:00:39
【问题描述】:

我正在尝试使用 Codename One 发送带有 JSON BODY 的 POST 请求。 这是建立连接并发送消息的代码

    ByteArrayOutputStream bOutput = new ByteArrayOutputStream();
    bOutput.write("{\"Key1\": \"Value1\",\"Key2\": \"Value2\"}".getBytes());  

    try {
        connectAction connReq = new connectAction();

        connReq.setPost(true);
        connReq.addRequestHeader("Authorization", "1234");
        connReq.addRequestHeader("client_id","4321");
        connReq.addRequestHeader("Content-Type","application/json");
        connReq.setUrl("https://myapi.com/test");
        connReq.setHttpMethod("POST");
        connReq.buildRequestBody(bOutput);
        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;
    }  

这是带有 buildRequestBody Override 的派生类

 public class connectAction extends ConnectionRequest
 {

    connectAction()
    {

    }



    @Override
    public void buildRequestBody(OutputStream os)
    {

    }
}

现在,当我在 public void buildRequestBody(OutputStream os) 放置断点时,我可以看到 'os' 具有值

os = (java.io.ByteArrayOutputStream) {"Key1": "Value1","Key2": "Value2"}

所以我知道它的价值一直走到这一步。

但是,当我启动网络监视器时,仅填充了请求标头并且标头为空。

非常感谢任何帮助。

谢谢

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    试试下面的代码希望对你有帮助

    // convert the object to a JSON document
    HashMap hashtable = new HashMap ();
    hashtable.put("Key1", "Value1");
    hashtable.put("Key2", "Value2");
    final String payload = Result.fromContent(hashtable).toString();
    
    protected void buildRequestBody(OutputStream os) throws IOException {
        os.write(payload.getBytes("UTF-8"));
    }
    

    【讨论】:

    • 非常感谢!!!!!!!我真的一直在为此苦苦挣扎。我正要更改框架并寻找其他东西:-)。谢谢 - 谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 2016-08-20
    • 2021-08-17
    • 2015-11-06
    • 2020-04-02
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    相关资源
    最近更新 更多