Dlaczego ten prosty klient SOAP nie działa (org.apache.http)?
Chcę wysłać plik XML jako żądanie do serwera SOAP. Oto kod, który mam: (zmodyfikowany zWysyłanie żądania HTTP z akcją SOAP przy użyciu org.apache.http )
import org.apache.http.client.*;
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.entity.StringEntity;
import org.apache.http.protocol.HTTP;
import org.apache.http.HttpResponse;
import java.net.URI;
public static void req() {
try {
HttpClient httpclient = new DefaultHttpClient();
String body="xml here";
String bodyLength=new Integer(body.length()).toString();
URI uri=new URI("http://1.1.1.1:100/Service");
HttpPost httpPost = new HttpPost(uri);
httpPost.setHeader( "SOAPAction", "MonitoringService" );
httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8");
StringEntity entity = new StringEntity(body, "text/xml",HTTP.DEFAULT_CONTENT_CHARSET);
httpPost.setEntity(entity);
RequestWrapper requestWrapper=new RequestWrapper(httpPost);
requestWrapper.setMethod("POST");
requestWrapper.setHeader("Content-Length",bodyLength);
HttpResponse response = httpclient.execute(requestWrapper);
System.out.println(response);
} catch (Exception e) {
e.printStackTrace();
}
}
Wcześniej otrzymywałem błąd „http 500” (wewnętrzny błąd serwera) z serwera, ale teraz nie otrzymuję żadnej odpowiedzi. Wiem, że serwer działa poprawnie, ponieważ z innymi klientami nie ma problemu.
Dzięki.