Код ответа HTTP: 400 при выполнении вызова SOAP - PullRequest
0 голосов
/ 24 мая 2019

Мы используем объект 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();
...