Home   Cover Cover Cover Cover
 

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());
    }
  }
}

Ausgabe der Client-Anwendung