2012-05-27 6 views
1

일 전 Java의 No-IP DUC (동적 DNS 업데이트 클라이언트)와 비슷한 응용 프로그램을 만들려고했지만 문제가 아닌 방법을 제시했습니다. 지금은 내가 다음 코드 줄에 등록한 도메인 검색 할 수 있습니다 ... 수정 :Java에서 DNS를 업데이트하십시오 (DUC NO-IP와 유사). [Was : Actualizar DNS desde Java (DUC No-Ip와 유사)]

URLConnection conexion = new URL("http://dynupdate.no-ip.com/list-hosts.php?email="+USER+"&pass="+PASSWORD).openConnection(); 

을하지만 난 당신이 페이지 http://www.no-ip.com/integrate/request에 추천 다음 URL을 업데이트 할 때, 나는 예외가 ...

URLConnection conexion = new URL("http://"+USER+":"+PASSWORD+"@dynupdate.no-ip.com/nic/update?hostname="+DOMAIN+"&myip="+IP).openConnection(); 

이상한 일은 수동으로 주소의 URL을 복사하는 것입니다. 업데이트는 문제가없는 ne ... 누군가가 나를 도울 수 있다면 많이 감사드립니다 ...

+0

왜 포르투갈어 또는 스페인어로 제목을 넣었습니까? – bacchus

+0

URL 문자열의 user/pass가'URLConnection'의 인증을 위해 작동하지 않습니다. ** 기본 인증 **을 명시 적으로 활성화해야합니다. 여기를 참조하십시오 : http://stackoverflow.com/questions/496651/connecting-to-remote-url-which-requires-authentication-using-java – Sandman4

+0

협조 해 주셔서 대단히 감사합니다 ...하지만 여전히 링크를 의심합니다. .. 즉, 나는 이러한 단계를 수행합니다 : http://www.javaworld.com/javatips/jw-javatip47.html하지만 URL을 만들려면 예외를 제공합니다 MalformedURLException : 입력 문자열 : "[email protected] ip.com "을 사용하고 URL을 생성하고 사용자 이름과 비밀번호를 묻는 연결을 사용하지 않으므로 setRequestProperty ("Authorization ","Basic "+ encoding); – ju4n

답변

1

글쎄, 나는이 상황에 직면했다. 이 오류의 원인은 사용자 이름에 이메일 주소를 사용하고 있기 때문입니다. 내부에있는 "@"는 결과 URL과 충돌합니다. URLEncode를 사용하여 사용자 이름과 암호 부분을 인코딩하십시오.

String username = URLEncoder.encode("[email protected]", "UTF-8"); 
String password = URLEncoder.encode("password", "UTF-8"); 
URL url = new URL("http://"+username+":"+password+"@dynupdate.no-ip.com/nic/update?hostname="+hostname+"&myip="+ip);   
URLConnection urlConnection = url.openConnection(); 
+0

댓글로 더 좋을 수도 있습니다. – JSuar

+1

새 사용자는 댓글을 달 수 없습니다. 관련 코드 예제를 사용하여 대답으로 만들려고 노력했습니다. – Konoha