Я пытаюсь использовать Codename One для отправки запроса POST с JSON BODY. Вот код, который делает соединение и посылает сообщениеcodenameone отправить 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)
{
}
}
Теперь, когда я устанавливаю точку останова в общественном ничтожной buildRequestBody (OutputStream Os) можно видеть, что 'ОС' имеет значение
OS = (java.io.ByteArrayOutputStream) { "Клавиша1": "Значение1", "key2": "значение2"}
Итак, я знаю, что ценность делает это так далеко.
Однако при запуске сетевого монитора заполняется только заголовок запроса, а заголовок пуст.
Любая помощь действительно ценится.
Благодаря
Огромное спасибо !!!!! Я действительно боролся с этим. Я собирался изменить рамки и искать что-то еще :-). Спасибо Спасибо! –
Вы больше всего приветствуетесь – tizbn
Исправлено форматирование кода –