Мы используем объект HttpURLConnection для выполнения SOAP Call. Для тестирования я использую ниже wsdl, который можно легко получить с помощью SoapUI-
http://www.dneonline.com/calculator.asmx
Я использую операцию добавления в тестовом коде. Я использовал тот же запрос, который я использую в SoapUI, который успешно возвращает ответ, однако, когда я использую код ниже, я получаю код ответа 400, который обозначает неправильный запрос. Когда я отлаживаю, он показывает, что менеджер безопасности повторно запускает null, который затем проверяется в коде, а затем выдает исключение. Может кто-нибудь подскажите, пожалуйста, как решить эту проблему?
String responseString = "";
String outputString = "";
String wsURL = this.wsURL;
URL url = new URL(wsURL);
URLConnection connection = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection)connection;
ByteArrayOutputStream bout = new ByteArrayOutputStream();
String xmlInput =this.wsURL;
byte[] buffer = new byte[xmlInput.length()];
buffer = xmlInput.getBytes();
bout.write(buffer);
byte[] b = bout.toByteArray();
// Set the appropriate HTTP parameters.
//httpConn.setRequestProperty("Name","CalculatorSoap");
//httpConn.setRequestProperty("SOAP Version","SOAP 1.1");
httpConn.setRequestProperty("Content-Length",String.valueOf(b.length));
httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
httpConn.setRequestProperty("SOAPAction", "http://tempuri.org/Add");
httpConn.setRequestMethod("GET");
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
//System.out.println("Error="+httpConn.getErrorStream().toString());
OutputStream out = httpConn.getOutputStream();