1

几天前,我尝试在 java 中创建一个类似于 No-IP DUC(动态 DNS 更新客户端)的应用程序,但我提出了一个问题,而不是如何解决......现在我可以检索我使用以下行注册的域代码:

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,更新完成没有问题......如果有人可以帮助我,我很感激......

4

1 回答 1

1

好吧,我也遇到了这种情况。发现此错误的原因是我们使用电子邮件地址作为用户名。其中的“@”与生成的 url 冲突。尝试使用 URLEncode 对用户名和密码部分进行编码。

String username = URLEncoder.encode("abc@xyz.com", "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();
于 2012-12-15T02:52:46.693 回答