В настоящее время я использую очень старый веб-сервис SOAP с Java 11, тип контента которого: application / dime .
Я пробовал JAXWS, но он не работал, теперь я отправляю простой запрос POST и могу получить ответ.
Как я вижу ответ, он состоит из 2 разделов. Первый из них содержит xml, который заканчивается на </soap:Envelope>
, а в другом разделе - фактический PDF.
Когда я открою содержимое ответа, удалите первую строку (которая представляет собой XML) и сохранитефайл с расширением .pdf, тогда я без проблем вижу PDF.
Я пытаюсь сделать то же самое с HttpURLConnection и получаю массив байтов, подобный этому:
byte[] encoded = Files.readAllBytes(Paths.get("C:\\Users\\aarzaluz\\request.xml"));
URL oURL = new URL("http://MMC0EIGDWebService/ServiceApp.asmx");
HttpURLConnection con = (HttpURLConnection) oURL.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-type", "text/xml; charset=utf-8");
con.setRequestProperty("SOAPAction", "http://tempuri.org/MMWebService/ServiceApp/MM");
con.setDoOutput(true);
con.setDoInput(true);
// Then I send a request:
OutputStream reqStream = con.getOutputStream();
reqStream.write(encoded);
reqStream.flush();
reqStream.close();
// and pick up the response as follows:
InputStream resStream = con.getInputStream();
byte[] fileAsBytes = getArrayFromInputStream(resStream);
// TODO how to remove all the characters that come before: </soap:Envelope> pattern
writeContent(fileAsBytes, "C:\\Users\\aarzaluz\\response.pdf");
В ответе, как я могу удалить все символы, предшествующие </soap:Envelope>
, а затем сохранить в response.pdf?