Java サーブレットの一部のデータを更新する必要がある Java クラスがあります。ホームネットワークでIPを使用している場合、またはISPのIPを使用している場合(ルーターからの転送を行った場合)でも正常に動作します。
しかし今、ISP アドレスと実際には同じ動的 DNS でサーブレットを更新したい場合、それは機能しません。
奇妙なことに、ダイナミック DNS を使用してサーブレットからデータを取得できます。
それが私のコードです: (私は IP と DDNS アドレスを見つめただけです) 注: ダイナミック DNS (コード内: http://example.zapto.org ) は、凝視された IP (コード内: http:// xx.xxx.xxx.xxx:8084 )。IP を使用する場合、DDNS は機能しません。
public class SendGsonToServlet {
public static boolean sendGson (String qrCode){
try {
String jsonStr = new Gson().toJson(qrCode);
// URL servletURL = new URL("http://example.zapto.org/Android_Server/data");
URL servletURL = new URL("http://xx.xxx.xxx.xxx:8084/Android_Server/data");
// URL servletURL = new URL("http://192.168.1.108:8084/Android_Server/data");
// assumes protocol is http, could be https
HttpURLConnection conn = (HttpURLConnection)servletURL.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.println(jsonStr);
// out.flush();
out.close();
System.out.println(conn.getResponseCode());
}catch (Exception e) {
}
return true;
}
}
皆様、ありがとうございました。楽しい休暇をお過ごしください :)