Mise à jour DNS de Java (similaire à DUC NO - IP). [Était: Actualizar DNS desde Java (Similaire à un DUC No-Ip)]


Il y a quelques jours, j'essaie de créer une application similaire à No-IP DUC (Dynamic DNS Update Clients) en java mais j'ai présenté un problème et non comment le résoudre ... Maintenant, je peux récupérer les domaines que j'ai enregistrés avec la ligne de code suivante:

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

Mais lorsque je mets à jour avec l'URL suivante, vous recommandez à la page http://www.no-ip.com/integrate/request , je reçois une exception ...

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

La chose étrange est que copier manuellement l'URL dans l'adresse, la mise à jour est effectuée sans problème ... Si quelqu'un peut m'aider je l'apprécie beaucoup ...

Author: Tom, 2012-05-27

1 answers

Eh bien, j'ai également fait face à cette situation. Découvert la raison de cette erreur est que nous utilisons une adresse e-mail pour le nom d'utilisateur. Le " @ " présent à l'intérieur entre en conflit avec l'URL résultante. Essayez d'utiliser URLEncode pour encoder le nom d'utilisateur et la partie mot de passe.

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();
 1
Author: Konoha, 2012-12-15 07:15:42