codenameone 在 POST 中发送 JSON BODY
codenameone send JSON BODY in POST
我正在尝试使用代号一发送带有 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;
}
这是派生的 class 和 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"}
所以我知道这个价值一直到现在。
然而,当我启动网络监视器时,只有请求 Header 被填充,header 为空。
非常感谢任何帮助。
谢谢
试试下面的代码希望能帮到你
// 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"));
}
我正在尝试使用代号一发送带有 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;
}
这是派生的 class 和 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"}
所以我知道这个价值一直到现在。
然而,当我启动网络监视器时,只有请求 Header 被填充,header 为空。
非常感谢任何帮助。
谢谢
试试下面的代码希望能帮到你
// 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"));
}