JAVA Отправить сообщение, которое содержит строку XML

1

описание проблемы

Я пытаюсь написать код, который отправляет запрос POST на сервер. Поскольку сервер еще не существует, я не могу проверить эту часть кода. С запросом я должен отправить XML как строку, которая выглядит как строка ниже:

String XMLSRequest = "<?xml version="1.0" encoding="UTF-8" standalone="no"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><AuthenticationHeader><Username>Victor</Username><Password>Apoyan</Password></AuthenticationHeader></soapenv:Body></soapenv:Envelope>"

Решение

String url = "https://testurl.com/somerequest";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

//add reuqest header
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");

String urlParameters = String.format("request=%s", XMLSRequest);

// Send post request
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();

Вопрос

Это правильный способ отправить String (XML как строку) в качестве запроса POST на сервер?

  • 0
    Сначала вам нужно сериализовать в JSON, а затем отправить по HTTP.
  • 0
    Не уверен, почему вы добавляете «request =» в XML, кроме того, что он выглядит нормально.
Показать ещё 14 комментариев
Теги:
xmlhttprequest
post
http-post

1 ответ

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

Чтобы отправить запрос SOAP, вы хотите написать xml в тело запроса. Вы не хотите записывать его как параметр.

String url = "https://testurl.com/somerequest";
URL obj = new URL(url);
urlConnection con = (HttpsURLConnection) obj.openConnection();

//add reuqest header
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", USER_AGENT);
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
con.setRequestProperty("Content-Type", "application/soap+xml; charset=utf-8");

// Send post request
con.setDoOutput(true);
OutputStream os = con.getOutputStream()); //get output Stream from con
os.write(XMLSRequest.getBytes("utf-8");
os.close();
  • 0
    urlConnection не работает мой веб-сервис jax-rs, который lib добавляет для этой работы

Ещё вопросы

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