2016-07-22 8 views
-2

ich einen http-Server von diesem Link: http://www.rgagnon.com/javadetails/java-have-a-simple-http-server.html (das erste Beispiel)Java-HTTP-Server-Client Beispiel

Ich betreiben es eine es ist in Ordnung arbeiten. Dann habe ich den folgenden kleinen Code als Client mit dem Server zu kommunizieren:

import java.io.IOException; 

import org.apache.http.HttpResponse; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.HttpClientBuilder; 

public class Main { 
    public static void main(String argv[]) throws ClientProtocolException, IOException 
    { 
     String url = "127.0.0.1/test"; 

     HttpClient client = HttpClientBuilder.create().build(); 
     HttpGet request = new HttpGet(url); 


     HttpResponse response = client.execute(request); 
     System.out.println("http response = "+response.toString()); 
    } 
} 

ich es ausgeführt, aber ich habe diese Ausnahme:

Exception in thread "main" java.lang.IllegalStateException: Target host is null 
    at org.apache.http.util.Asserts.notNull(Asserts.java:46) 
    at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125) 
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) 
    at httpClient.Main.main(Main.java:20) 

ist es eine Idee, wie ich dieses Problem beheben?

+0

Try 'http: // 127.0.0.1/info' – Berger

Antwort

1

Ist Ihr Apache-Server auf 80 ausgeführt?

Als Sie den Quellcode des Servers beigefügt haben, scheint Ihr Server auf 8000 Port zu laufen, versuchen Sie also, mit Ihrem Server über diesen Port zu kommunizieren.

http://127.0.0.1:8000/info

+0

danke für die Antwort scheint es, dass‚s fixiert ich als angezeigte Nachricht bekam: http response = HTTP/1.1 200 OK [Content-Länge: 30, Datum: Fr, 22 Jul 2016 08:45:13 GMT] hast du eine Idee wie ich die vom Server gesendete Nachricht beantworten kann? –

+0

Ich habe ResponseHandler verwendet, um die vom Server gesendete Nachricht zu erhalten. Nochmals vielen Dank für die Antwort. –

0

Sie benötigen das Protokoll für die URL. Zum Beispiel:

String url = "http://127.0.0.1/info"; 

Unter der Annahme, es auf Port läuft 80. Wenn es auf einem anderen Port ausgeführt wird, schließen Sie dann den Port zu. Zum Beispiel:

String url = "http://127.0.0.1:8080/info"; 
1

In Ihrem angegebenen Link i-Server auf Port läuft 8000.

new InetSocketAddress(8000) 
String url = "http://127.0.0.1:8000/test" 

Beispiel selbst zu erklären, wie eine Verbindung sehen. Kompilieren und ausführen. Um den lokalen Server zuzugreifen, öffnen Sie einen Browser auf

http://localhost:8000/test.