import java.io.*;
import java.net.*;

/**
   ScriptStarter
   Aufruf z.B.: java ScriptStarter http://java.sun.com/cgi-bin/backwards Mauer
   @author Benedikt Großer, Holger Arndt
   @version 26.05.2003
*/
public class ScriptStarter
{
  public static void main(String[] argv)
  {
    try
      {
	String text = argv[1];
	// Konvertiert den String in das x-www-form-urlencoded Format.
	// zweiter Paramter für encode() ab Java 1.4
	String textcodiert = URLEncoder.encode(text, "ISO-8859-1");
    
	// Eine URL erzeugen. argv[0] verweist hoffentlich auf ein Perl-Script.
	URL url = new URL(argv[0]);
	// Eine Verbindung zu dieser URL aufbauen und eine Instanz
	// von URLConnection erhalten. 
	URLConnection urlconn = url.openConnection();
	// Setzt ein internes Flag, so dass in die Verbindung geschrieben 
	// werden kann.
	urlconn.setDoOutput(true);
	// Einen Ausgabestrom auf die Verbindung setzen.
	OutputStream urlconnoutstr = urlconn.getOutputStream();
	// Auf diesen Stream einen OutputStreamWriter ansetzen.
	OutputStreamWriter osr = new OutputStreamWriter(urlconnoutstr);
	// Den OutputStreamWriter in einem BufferedWriter verpacken.
	BufferedWriter bw = new BufferedWriter(osr);
	// Eine Zeile schreiben.
	bw.write("string=" + textcodiert);
	// BufferedWriter schliessen
	bw.close();
      
	// Ab hier wie bei URLLader (Version 2) !

	// Einen Eingabestrom auf die Verbindung setzen. 
	InputStream urlconninstr = urlconn.getInputStream();
	// Auf diesen Stream einen InputStreamReader ansetzen. 
	InputStreamReader isr = new InputStreamReader(urlconninstr); 
	// Den InputStreamReader in einem BufferedReader verpacken. 
	BufferedReader br = new BufferedReader(isr); 
	// Zeilenweise einlesen 
	String zeile = br.readLine(); 
	while (zeile != null)
	  { 
	    System.out.println(zeile); 
	    zeile = br.readLine(); 
	  }
	// BufferedReader schliessen 
	br.close(); 
      } // try 
    catch (MalformedURLException mue)
      {
	System.out.print("Fehlerhafte URL: ");
	System.out.println(mue.getMessage());
      }
    catch (IOException ioe)
      { 
	System.out.print("Allgemeiner IO-Fehler: "); 
	System.out.println(ioe.getMessage()); 
      }
    catch (ArrayIndexOutOfBoundsException aioobe)
      { System.out.println("Aufruf: java URLLader <URL (Perl)> <Text>"); }

  } // ende main
} // ende public class ScriptStarter
