package javacodebook.net.url.write;

import java.io.*;
import java.net.*;


/**
 * @author benjamin_rusch
 *
 * In diesem Beispiel wird eine Dienst angesprochen, der einen als 
 * Parameter übergebenen String umkehrt. 
 * Ziel des Programms ist zu zeigen, wie an eine URL etwas geschickt 
 * werden kann, was der Server intern weiterverarbeiten kann.
 */


public class URLWriter {
    public static void main(String[] args) throws Exception {

		String stringToReverse = "Wert";
		
		// Eine URL Instanz wird erstellt
		URL url = new URL("http://java.sun.com/cgi-bin/backwards");

		// Eine URLConnection wird über openConnection() geöffnet
		URLConnection connection = url.openConnection();

		// Mit setDoOutput(true) wird angekündigt, dass der URL auch 
		// Daten geschickt werden
		connection.setDoOutput(true);
	
		// Ein Name-Wert-Paar wird an die URL geschickt
		PrintWriter out = new PrintWriter(
	                              connection.getOutputStream());
		out.println("string=" + stringToReverse);
		out.close();
	
		// Die Antwort der URL wird ausgelesen
		BufferedReader in = new BufferedReader( new InputStreamReader(
					connection.getInputStream()));	
		String inputLine;
		while ((inputLine = in.readLine()) != null)
		    System.out.println(inputLine);
	
		in.close();
    }
}