import java.net.*; import java.io.*; public class GoogleSoap { // Die 'marshall' Methode erstellt die zu uebertragende SOAP-Nachricht. // Diese Methode muessen Sie erweitern, um die Aufgabe zu loesen. public String marshall(String key, String searchString) { StringBuffer payload = new StringBuffer("\n"); // Erweitern Sie nun die SOAP-Nachricht, indem Sie der payload weitere Zeilen anfuegen: payload.append ("\n"); payload.append ("\n"); // etc... return payload.toString(); } // Die 'post' Methode uebertraegt die SOAP-Nachricht an den Google Server. // Sie muessen in dieser Methode keinerlei Aenderungen vornehmen. public void post(String message) { try { byte[] request = message.getBytes(); System.out.println(new String(request)); System.out.println("# Data marshalled"); URL endpoint = new URL("http://api.google.com/search/beta2"); URLConnection con = endpoint.openConnection (); System.out.println("# Connection opened"); con.setDoInput (true); con.setDoOutput (true); con.setUseCaches (false); con.setAllowUserInteraction(false); System.out.println("# Basic configuration done"); con.setRequestProperty ("Content-Length", Integer.toString (request.length)); con.setRequestProperty ("Content-Type", "text/xml"); System.out.println("# All configuration done"); OutputStream out = con.getOutputStream (); out.write (request); out.flush (); out.close(); System.out.println("# Data sent"); InputStream in = con.getInputStream(); System.out.println("# Data received"); int i= -1; while((i = in.read()) > -1) { System.out.print((char)i); } } catch(MalformedURLException e1) { System.out.println(e1.getMessage()); } catch(IOException e2) { System.out.println(e2.getMessage()); } } // Die 'main' Methode wird beim Starten des Programms automatisch aufgerufen. // Sie sorgt dafuer, dass die SOAP-Nachricht verschickt wird, wobei der // Suchbegriff als Parameter des Programmstarts erwartet wird. // Sie muessen keine Aenderungen an dieser Methode vornehmen. public static void main(String[] args) { if (args.length == 2) { GoogleSoap sc = new GoogleSoap (); sc.post(sc.marshall(args[0], args[1])); } else { System.out.println("Usage: java GoogleSoap "); } } }