[java] java.net.UnknownHostException : 서버에 대한 잘못된 호스트 이름 : 로컬

오류를 해결하기 위해 취해야 할 단계는 무엇입니까?

java.net.UnknownHostException: Invalid hostname for server: local

Android 에뮬레이터에 새 가상 호스트 이름을 추가했지만 결과는

 java.net.UnknownHostException virtualhostname at 
  java.net.InetAddress.lookUpHostByName(InetAddress.java:506)

내 PC에 가상 호스트 URL을 입력하면 디스플레이에서 작동합니다. 그런 다음 다시 에뮬레이터에서 실행하고 Logcat을 확인하면 200, 202 또는 오류 코드 번호 인 경우 HTTP 상태를 읽거나 확인할 수 없습니다. 그것은 단순히UnknownHostException



답변

실제로 예외는 “local”이라는 이름의 알려진 서버가 없다는 것입니다. 내 생각에 로컬 컴퓨터에 연결하려고합니다. "localhost"대신 호스트 이름을 사용하거나 127.0.0.1또는 또는 ::1(마지막 이름 은 IPv6)을 사용해보십시오 .

로부터 의 javadoc :

호스트의 IP 주소를 확인할 수 없음을 나타 내기 위해 발생합니다.

127.0.0.1::1또는 "localhost"그 나는 정말 놀랄 것 작동하지 않습니다 그렇다면 항상 루프백 인터페이스해야합니다.

네트워크에 “로컬”이라는 서버가있는 경우 DNS 설정을 검사하거나 호스트 파일에 추가하십시오.


답변

내 Mac에서 동일한 문제가 발생했습니다. $HOSTNAME터미널에서 내 핑을했을 때 문제를 발견했고 반환했습니다 ping: cannot resolve myHostName: Unknown host.

해결 방법 :

  1. 수행 echo $HOSTNAME터미널에.
  2. 그것이 보여주는 호스트 이름이 무엇이든간에 (말하자 myHostName) 핑을 시도하십시오 : ping myHostName. 반환되면 파일에 ping: cannot resolve myHostName: Unknown host항목을 추가 /etc/hosts하십시오.
  3. 해당 편집 /etc/hosts파일에 대해 다음을 추가하십시오.

    127.0.0.1 myHostName

도움이 되었기를 바랍니다.


답변

java.net.UnknownHostException : 호스트가 해결되지 않았습니다.

호스트의 IP 주소를 확인할 수 없음을 나타 내기 위해 발생합니다.

이 예외는 유효한 Wi-Fi에 연결되어 있지만 라우터가 인터넷을 수신하지 못하는 경우에도 발생합니다. 이것을 재현하는 것은 매우 쉽습니다.

  1. 유효한 Wi-Fi에 연결
  2. 이제 라우터가 연결되어있는 동안 라우터에서 케이블을 제거하십시오.

이 오류가 발생합니다 !!

당신은 정말로 이것을 해결할 수 없습니다. 당신은 사용자에게 우아하게 만 알릴 수 있습니다. (예 : “연결할 수 없음”)


답변

이것은 질문에 국한되지 않지만이 질문은 내가 언급 한을 검색 할 때 나타 났으며 UnknownHostException다른 곳에서는 수정 사항이 없으므로 여기에 답변을 추가 할 것이라고 생각했습니다.

지속적으로 수신 된 예외는 다음과 같습니다.

java.net.UnknownHostException:  google.com
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)
    ... 

유효한 호스트에 어떻게 연결하려고하더라도 터미널에서 인쇄해도 도움이되지 않습니다. 모든 것이 옳았습니다.

해결책

trim() 공백이 포함 된 호스트 문자열을 호출하지 않습니다 . 프록시 서버를 작성할 때 헤더 split(":")에 세미콜론을 사용하여 HTTP 헤더에서 호스트를 얻었습니다 HOST. 이로 인해 공백이 남았 UnknownHostException으며 공백이있는 호스트는 유효한 호스트가 아닙니다. 이렇게 host = host.trim()온 것은 String host모호한 문제를 해결했다.


답변

여러 가지 이유로 발생할 수 있습니다.

1) VPN이 연결되어 있는지 확인하세요. 그렇다면 가끔이 오류가 발생할 수 있습니다.

“호스트 이름, localhost는 루프백 주소 : 127.0.0.1; 대신 10.xxx.1.193 사용 (인터페이스 cscotun0)”

2) $ HOSTNAME 확인

3) 명령 줄에서 $ HOSTNAME 핑을 시도하고 작동하지 않으면 시스템 설정을 조정하여 로컬 호스트가 핑에 응답하도록합니다.


답변

호스트 이름이 없습니다. JBoss는 서버에 연결할 때이 환경 변수 ($ HOSTNAME)를 사용합니다.

[root@xyz ~]# echo $HOSTNAME
xyz

[root@xyz ~]# ping $HOSTNAME
ping: unknown host xyz

[root@xyz ~]# hostname -f
hostname: Unknown host

이를 유발할 수있는 것은 수십 가지가 있습니다. 새로운 이유를 발견하면 의견을 말하십시오.

서버에서이 문제를 영구적으로 해결할 수있을 때까지 해킹 의 경우 / etc / hosts 파일 끝에 다음 추가 할 수 있습니다 .

127.0.0.1 xyz.xxx.xxx.edu xyz


답변

다음을 시도하십시오.

String url = "http://www.google.com/search?q=java";
URL urlObj = (URL)new URL(url.trim());
HttpURLConnection httpConn =
(HttpURLConnection)urlObj.openConnection();
httpConn.setRequestMethod("GET");
Integer rescode = httpConn.getResponseCode();
System.out.println(rescode);

URL Trim ()