我有一个需要更新 Java Servlet 中的一些数据的 java 类。当我在家庭网络中使用 IP 或者即使我使用我的 ISP ip(从路由器进行转发)时,它也可以正常工作。
但是现在,当我想使用实际上与我的 ISP 地址相同的动态 DNS 更新 servlet 时,它不起作用。
奇怪的是,我可以使用动态 DNS 从 servlet 获取数据。
这是我的代码:(我只是盯着 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;
}
}
谢谢大家,节日快乐:)