Socket - Verbindung zu HTTP-Server

Servus,

ich muss eine HTTP-Verbindung via Sockets manuell aufbauen, bekomme aber keine Antwort. Test-Code läuft unendlich lang (beim richtigen Code werd ich nen Timeout einbauen).

package javaapplication1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

/\*\*
 \*
 \* @author michi
 \*/
public class Main {

 /\*\*
 \* @param args the command line arguments
 \*/
 public static void main(String[] args) {
 try {
 String url = "www.google.de";
 Socket cS = new Socket(url, 80);
 PrintWriter bos = new PrintWriter(cS.getOutputStream());
 BufferedReader is = new BufferedReader(new InputStreamReader(cS.getInputStream()));
 bos.write("GET /wiki/Katzen HTTP/1.1\nHost: de.wikipedia.org\n");
 System.out.println("Empfang....");
 String nl = is.readLine();
 while (nl != "") {
 System.out.println(nl);
 nl = is.readLine();
 }
 } catch (UnknownHostException ex) {
 ex.printStackTrace();
 } catch (IOException ex) {
 ex.printStackTrace();
 }
 }

}

Frage ist klar: Warum kommt keine Antwort vom Server?

grtz
michi

Korrektur: Socket - Verbindung zu HTTP-Server
Sorry, der Host war der selbe, habs in dem Post aber mitten unterm bearbeiten kopiert.

url = „de.wikipedia.org“; statt url = „www.google.de“;

Servus,

bos.write(„GET /wiki/Katzen HTTP/1.1\nHost::de.wikipedia.org\n“);

Der Server wartet auf weiter Headerzeilen (User-Agent, Accept etc.). Erst wenn eine Leerzeile folgt antwortet der Server.

HTH
Heavy

Danke.
Das mit der Leerzeile hat funktioniert. Danach muss ich den PrintWriter aber noch flushen. Danke. Es funktioniert auch ohne Accept und User-Agent.

grtz
michi