2016-07-22 69 views
-2

我从这个链接http服务器:http://www.rgagnon.com/javadetails/java-have-a-simple-http-server.html(第一个例子)Java的HTTP服务器客户端的例子

我运行它的它的优良工作。然后我用下面的小代码作为客户端与服务器进行通信:

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()); 
    } 
} 

我执行它,但我得到这个异常:

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) 

有一个想法,我怎么能解决这个问题?

+0

尝试打开浏览器,通过'http:// 127.0.0.1/info' – Berger

回答

1

您的apache服务器是否在80上运行?

当您连接服务器的源代码时,它似乎是您的服务器在8000端口上运行,因此请尝试使用此端口与您的服务器进行通信。

http://127.0.0.1:8000/info

+0

谢谢你的回答,似乎那是固定的我得到的消息显示: HTTP响应= HTTP/1.1 200 OK [内容长度:30,日期:2016年7月22日星期五08:45:13 GMT] 你知道我怎么可以从服务器发送的消息响应吗? –

+0

我用ResponseHandler来获取服务器发送的消息。 再次感谢您的回答。 –

0

您需要URL的协议。例如:

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

假设它是在端口80上运行。如果另一个端口上运行,则包括的端口太。例如:

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

在你给出的链接我可以看到服务器在端口8000

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

实例本身说明如何连接运行。 编译并执行。要访问本地服务器,在

http://localhost:8000/test.