1

数日前、Java で No-IP DUC (Dynamic DNS Update Clients) に似たアプリケーションを作成しようとしましたが、修正方法ではなく問題が発生しました...次の行で登録したドメインを取得できますコード:

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 に答える