problem z odebraniem SOAP response

0

Mam pewien problem związany z web service. Łączę się z serwerem, wysyłam Request i oczekuję na odpowiedź w ten sposób:

import java.io.*;
import java.net.*;

public class Test3 {
	
	public final static String DEFAULT_SERVER 
	   = "http://nlp.pwr.wroc.pl/clarin/ws/takipi";
	public final static String SOAP_ACTION 
	   = "http://nlp.pwr.wroc.pl/clarin/ws/takipi/Tag";
	  
	public static void main(String[] args) throws Exception {
		String s="Ala Ma Kota test";
		
	    String hostname = "nlp.pwr.wroc.pl";
	    int port = 80;
	    InetAddress  addr = InetAddress.getByName(hostname);
	    Socket client = new Socket(addr, port);
		System.out.println("Połączony");
		
		OutputStream out = client.getOutputStream();
		PrintWriter writer = new PrintWriter(out);
		System.out.println("OutputStream otwarty");
		
		InputStream in = client.getInputStream();
		BufferedReader reader = new BufferedReader(new InputStreamReader(in));
		
		writer.write("POST /clarin/ws/takipi/ HTTP/1.1\n");
		writer.write("Host: nlp.pwr.wroc.pl\n");
		writer.write("Connection: Keep-Alive\n");
		writer.write("User-Agent: PHP-SOAP/5.2.6-1+lenny9\n");
		writer.write("Content-Type: text/xml; charset=utf-8\n");
		writer.write("SOAPAction: \"http://nlp.pwr.wroc.pl/clarin/ws/takipi/Tag\"\n");
		writer.write("Content-Length: 1208\n");
		writer.write("\n");
		writer.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
		writer.write("<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns1=\"http://nlp.pwr.wroc.pl/clarin/ws/takipi/\"><SOAP-ENV:Body><ns1:Tag><text>"+
					s+"</text><format>TXT</format><useGuesser>true</useGuesser></ns1:Tag></SOAP-ENV:Body></SOAP-ENV:Envelope>\n");
		writer.write("\n");
		writer.flush();
		
		String str=null;
		while((str=reader.readLine())!=null)
			System.out.println("Odp: "+str);
		
		writer.close();
		reader.close();
	}
} 

Nie otrzymuję jednak odpowiedzi, tzn. pętla readLine nie kończy się, ale też nic nie wypisuje. Komunikat Request dochodzi, co widać na poniższej stronie:
http://nlp.pwr.wroc.pl/clarin/ws/takipi/test/request_history.php

Będę wdzięczny za wszelkie sugestie/podpowiedzi co robię źle, że nie umiem odczytać odpowiedz.

0

jeżeli mówimy o soap to pewnie masz tam jakiegoś wsdl'a? Java ma wygodne narzędzia które to upraszczają i automatycznie generuja kod. (wsimport)

w dokumentacji na tej stronie jest plik wsdl. Wygeneruj sobie z tego kod javy i na nim operuj. Nie ma sensu schodzić do strumieni...Chyba że to coś wybitnie specyficznego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1