2013-04-24 113 views
1

我在java Jersey REST中开发了一个Web服务。我使用HttpClient来调用一个基本的GET方法。HttpClient不与本地主机工作

在浏览器上使用此URL http://localhost:8080/myserver/rest/location时,它可以正常工作。

使用此代码调用GET方法时,出现404 Not Found错误。

private static final String BASIC_URL = "http://localhost:8080/myserver/rest/location"; 

public static boolean isAlive() throws URISyntaxException, ClientProtocolException, IOException{ 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpGet get=new HttpGet(BASIC_URL); 
    System.out.println(get.getURI()); 

     System.out.println("after adding all namevalues: "+get.getURI()); 
     HttpResponse response = httpclient.execute(get); 
    StatusLine statusLine = response.getStatusLine(); 

    if (statusLine.getStatusCode() != 200) { 
     System.out.println("response status="+statusLine.getStatusCode()); 
     return false; 
    } 
    System.out.println("Response sent succesfully with status "+200); 
    return true; 
} 

任何线索?

UPDATE

而且,我想http://192.168.9.160:8080/LocationRetreiverServer/rest/location(我的本地IP),它给了Not Found错误!

+0

它在浏览器上显示什么? – 2013-04-24 13:49:58

+0

它显示200 OK响应并显示一个字符串。 – 2013-04-24 13:58:40

+0

你的泽西REST服务是否有可能返回404的逻辑? – 2013-04-24 14:05:21

回答

0

响应“404 Not Found”清楚地表明您已成功向服务器发出了HTTP请求,该服务器返回了此HTTP响应。所以这个麻烦似乎不是源于本地主机的一部分。

例如,您可能会缺少一些必需的标题。

比较由浏览器发出的完整HTTP请求和由您的HttpClient发出的HTTP请求。

+0

如何跟踪浏览器发出的请求?从服务器端? – 2013-04-24 13:47:16

+0

如果你可以在服务器端登录,那会很好。否则总是有WireShark。 – 2013-04-24 13:49:30

+0

谢谢。对于其他需要更快捷方式的人,我使用了Chrome网络开发人员工具。 – 2013-04-24 13:58:16