2014-11-14 2 views
0

URL을 사용하여 연결을 설정하려고하지만 내 서버가 작동하지 않아 IO 예외가 발생합니다. 내 연결이 설정되어 있는지 여부를 확인하고 싶습니다 또는 어떻게 자바 에서이 acheive 수 있습니다. 여기 내 코드는자바에서 연결이 설정되었는지 여부를 확인하는 방법은 무엇입니까?

URLConnection connection = new URL(configurationManagement.getValue(url)).openConnection(); 
      connection.setRequestProperty("Accept-Charset", charset); 
      connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401"); // Do as if you'rusing Firefox 3.6.3 
      InputStream response = connection.getInputStream(); 

아무도 도와 줄 수 있습니까?

답변

0

지금 바로하고 있습니다 (곧장하지는 않습니다). 입력 스트림 (일부 데이터 읽기 또는 입력 대기 차단)에서 읽을 수 있다면 연결이 시작되어 실행 중임을 의미합니다. 그렇지 않으면 예외가 발생합니다.

명시 적으로 제공된 리소스에 연결하기 위해 URLConnection#connect()을 호출 할 수 있으며, 예외가 throw되지 않으면 다시 연결됩니다. BTW getInputStream은 전화하기 전에 씬 뒤에서 connect()으로 전화를 걸고 있습니다.

자세한 내용은 javadocs을 참조하십시오.

+0

네, 예외를 처리하고 싶습니다. 내 연결이 열려 있는지 확인한 다음 입력 스트림을 읽으십시오. – user2142786

+0

단순한 try catch 블록에 모든 것을 넣는 것 이상입니다. 자동으로 수행됩니다. – Antoniossss

-1

핑함으로써 우리는 내 서버가 아니기 때문에 내가 IO 예외를 얻고 시스템 상태를

String command = "ping -c 3 " + IP; 
Process p = Runtime.getRuntime().exec(command); 
+0

연결하려는 HTTP 서버가 작동 중인지 여부, 즉 실제로 연결을 설정할 수 있는지 여부는 알려주지 않습니다. – EJP

1

를 확인할 수 있습니다. 내 연결이 설정되어 있는지 여부를 확인하고 싶습니다 또는 어떻게 자바 에서이 acheive 수 있습니다.

입니다. IOException이 있습니다. 그 말이 당신에게 말했습니다. 이전에이 파일을 가져 오려면 connect() 또는 getResponseCode().으로 전화하십시오. getResponseCode()이 IOException을 throw하지 않고 200을 반환하면 입력 스트림을 읽습니다.

관련 문제