2013-04-24 4 views
1

Java Jersey REST에서 웹 서비스를 개발했습니다. HttpClient를 사용하여 기본 GET 메서드를 호출했습니다.HttpClient가 localhost와 작동하지 않습니다.

브라우저에서이 URL http://localhost:8080/myserver/rest/location을 사용하면 작동합니다.

이 코드를 사용하여 GET 메서드를 호출하면 404 찾을 수 없음 오류가 발생합니다.

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 또한

, 나는 (내 로컬 IP) http://192.168.9.160:8080/LocationRetreiverServer/rest/location를 시도하고이 오류를 찾을 수 없음 준!

+0

브라우저에 표시되는 내용은 무엇입니까? –

+0

문자열이 표시된 200 OK 응답을 표시합니다. –

+0

저지 REST 서비스에 404를 반환 할 수있는 논리가 있습니까? –

답변

0

"404 Not Found"응답은이 HTTP 응답을 반환 한 서버에 대한 HTTP 요청을 성공적으로 완료했음을 분명히 나타냅니다. 따라서 문제는 localhost 부분에서 발생하지 않는 것 같습니다.

예를 들어 필수 헤더가 누락되었을 수 있습니다.

브라우저에서 발행 한 HTTP 요청과 HttpClient에서 발급 한 전체 HTTP 요청을 비교하십시오.

+0

브라우저에서 발행 한 요청을 추적하는 방법은 무엇입니까? 서버 쪽에서? –

+0

서버 측에서 로그 할 수 있다면 좋을 것입니다. 그렇지 않으면 항상 WireShark가 있습니다. –

+0

감사합니다. 더 빠른 방법이 필요한 사람들을 위해 Chrome Network 개발자 도구를 사용했습니다. –

관련 문제