Einfacher TimeService-Client in .NET
Zu Abschnitt 7.2 des Buchs
Dieses Beispiel zeigt einen Java-Client für das einfache Web-Service "TimeService".
Der Java-Client wurde mit dem folgendem Kommando gestartet:
java -cp .; Kapitel7.JavaClient
client/javaclient/Kapitel7/JavaClient.java
package Kapitel7;
import java.io.*;
import java.net.*;
/** Einfacher XML Web Service client in Java.
Das Web Service wird �ber SOAP - HTTP aufgerufen und
das XML Ergebnis an der Konsole ausgegeben.
*/
public class JavaClient {
public static void main(String[] args) {
try {
URL url= new URL("http://dotnet.jku.at/book/samples/7/simple/TimeService1.asmx");
//HTTP Verbindung zum Service aufbauen
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
//SOAP Request erstellen
connection.setRequestProperty("Content-type", "text/xml; charset=utf-8");
connection.setRequestProperty("SOAPAction", "http://tempuri.org/GetTime");
//SOAP request f�r GetTime erstellen - siehe Detailbeschreibung von GetTime:
//http://localhost/time/TimeService.asmx?op=GetTime
String msg =
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
"<soap:Envelope " +
//" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
//" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"\n" +
" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n" +
" <soap:Body>\n" +
" <GetTime xmlns=\"http://tempuri.org/\" /> \n" +
" </soap:Body>\n" +
"</soap:Envelope>";
//SOAP-Request schicken
byte[] bytes = msg.getBytes();
connection.setRequestProperty("Content-length", String.valueOf(bytes.length));
//Ausgabe
System.out.println("\nSOAP Aufruf:");
System.out.println("Content-type:"+connection.getRequestProperty("Content-type"));
System.out.println("Content-length:"+connection.getRequestProperty("Content-length"));
System.out.println("SOAPAction:"+connection.getRequestProperty("SOAPAction"));
System.out.println(msg);
OutputStream out = connection.getOutputStream();
out.write(bytes);
out.close();
// SOAP-Response lesen und ausgeben
BufferedReader in = new BufferedReader(
new InputStreamReader(
connection.getInputStream()));
String inputLine;
System.out.println("\nServer Antwort:");
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
} catch (Exception e) {
System.out.println("FEHLER:" + e.getMessage());
}
}
}
|
|