Как отправить param для отправки http запроса?

1

У меня есть код javaScript, где я отправляю HTTP-сообщение с некоторыми параметрами. Post - это json, который выглядит следующим образом: {"tokenRequest":{"authSpecification":{"authToken":"T7SUNv0j2eRTeu04tVbcSa0LHN1YnNjcmliZXItMTk2LDEsRk9YVEVMLDE5NiwxMT"},"contentSpecification":{"contentId":"abc"}}}

В JavaScript я просто открываю запрос, устанавливаю заголовки и отправляю параметры. Почтовый запрос выглядит так:

var request = new XMLHttpRequest();
request.open("POST", url, true);
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
request.send(tokenRequestJSON); //tokenRequestJSON is the json parameter mentioned above

Теперь мне нужно сделать тот же вызов на Java (из-за некоторого внутреннего требования POC). Для этого я сделал следующее:

AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
Map<String,String> httpHeaders = new HashMap<>();
httpHeaders.put("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
for (Map.Entry header : httpHeaders.entrySet()) {
                asyncHttpClient.addHeader((String)header.getKey(), (String)header.getValue());
            }
RequestParams postData1 = new RequestParams();
String tokenRequest1 = "{\"tokenRequest\":{\"authSpecification\":{\"authToken\":\"T7SUNv0j2eRTeu04tVbcSa0LHN1YnNjcmliZXItMTk2LDEsRk9YVEVMLDE5NiwxMT\"},\"contentSpecification\":{\"contentId\":\"abc\"}}}";
postData1.put("arg0", tokenRequest1);
asyncHttpClient.post(url, postData1, new ResponseHandler());

Но это дает мне ошибку. {"errorResponse": {"status": "ERROR", "errorCode": "MDRM-0002", "errorMessage": "Json body not properly formed (No JSON object could be decoded)"}}

Я новичок в Java, возможно, я пропустил некоторые базовые вещи. Знаете ли вы, почему запрос из java не работает?

Заранее спасибо.

Теги:
xmlhttprequest
http
http-post

1 ответ

1
Лучший ответ

Вы используете AsyncHttpClient?

RequestParams postData1 = new RequestParams();
postData1.put("arg0", tokenRequest1) // this is not a json object, not the body of the request.

Параметр запроса является параметром на url, например, "date" является параметром запроса: http://localhost: 8080/MyApp/user/1234/invoices? Date = 12-05-2013

  • 0
    Да, я использую AyncHttpClient. Тогда как я должен отправить параметры в пост HTTP на Java?
  • 0
    Здесь много примеров: stackoverflow.com/questions/7181534/…
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню