-2

IF 문 본문이 실행되지 않습니다. 왜 이런거야?IF 문 실행 본문이 실행되지 않음 (HttpURLConnection)

try { 
     URL url= new URL(urlRequest); 
     HttpURLConnection foo = (HttpURLConnection) url.openConnection(); 

     if(foo.getResponseCode() == HttpURLConnection.HTTP_OK) { 
      // SOME CODE HERE 
     } 

} catch(Exception e) { 
     e.printStackTrace(); 
} 

내가 HttpURLConnection의 상당 .equals()==를 교체해야합니까 :

String urlRequest = "http://stackoverflow.com/"; 

여기 내 코드의

가정? 또는 응답 코드 대신 HttpURLConnection의 상태 코드를 사용해야합니까?

+0

int 값이 같아도 괜찮습니다. –

+1

200 OK 응답을 실제로 받았는지 확인 했습니까? 디버깅 목적으로 응답 코드 값을 인쇄 할 수 있습니다. – Perception

+1

'else'조건을 추가하고 해당 조건에 들어가는 지 확인하십시오. –

답변

1

코드가 HTTP 호출에서 충돌하기 때문에 본문이 실행되지 않습니다. 이 호출이 분리 된 스레드에 있는지 확인하십시오. 자세한 내용은 here을 참조하십시오.

실제 if 문과 마찬가지로 예외 예외이므로 문제가 될 수 있습니다.

Tbh, 나중에 Log와 같은 정보를 제공하고 @paxdiablo에서 설명한대로 코드를 추상화하여 충분한 테스트를 수행했는지 확인하십시오.

행운을 빌어 요!

+0

감사합니다. 당신은 옳았습니다. 내 코드가 else {}을 IF 문에 추가하고 오류가 내 로그에 나타 났음을 알리는 것처럼 HTTP 호출에서 오류가 발생했습니다. 다행히도 스레드 제안을 통해이 문제가 해결되었습니다. – androideka

1

당신은 변경하는 경우 :

if(foo.getResponseCode() == HttpURLConnection.HTTP_OK) { 

같은으로 :

int xyzzy = foo.getResponseCode(); 
System.out.println ("xyzzy = " + xyzzy); 
System.out.println (" OK = " + HttpURLConnection.HTTP_OK); 
if(xyzzy == HttpURLConnection.HTTP_OK) { 

당신이 발사하지 왜 말할 수 있어야합니다.

확률은 이 아니며이 아닙니다.