import java.net.*; import java.io.*; public class GoogleSoap { public String marshall(String key, String searchString) { StringBuffer payload = new StringBuffer("\n"); payload.append("\n"); payload.append("\n"); payload.append("\n"); payload.append("" + key + "\n"); payload.append("" + searchString + "\n"); payload.append("0\n"); payload.append("10\n"); payload.append("true\n"); payload.append("\n"); payload.append("false\n"); payload.append("\n"); payload.append("UTF-8\n"); payload.append("UTF-8\n"); payload.append("\n"); payload.append("\n"); payload.append("\n"); return payload.toString(); } 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"); con.setRequestProperty ("SOAPAction","\"urn:GoogleSearchAction\""); 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()); } } 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 "); } } }