2013-04-24 108 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