0
URLからJSON文字列を取得するために、以下のプログラムを実行しています。私は、ブラウザから直接URLにアクセスしようとした場合URLからJSONを読み取るときに接続タイムアウトが発生する
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
public class Temp {
public static void main(String args[]) throws Exception {
System.out.println(readUrl("http://ip-api.com/json/31.15.112.160"));
}
private static String readUrl(String urlString) throws Exception {
BufferedReader reader = null;
try {
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
StringBuffer buffer = new StringBuffer();
int read;
char[] chars = new char[1024];
while ((read = reader.read(chars)) != -1)
buffer.append(chars, 0, read);
return buffer.toString();
} finally {
if (reader != null)
reader.close();
}
}
}
とその
Exception in thread "main" java.net.ConnectException: Connection timed out: connect
その結果はしかし、それはすべての問題をスローしません。
また、jQueryコールも正常に機能します。
$.getJSON("http://ip-api.com/json/31.15.112.160",
function(data){
document.getElementById("jsonIpDataISP").value = data.isp;
document.getElementById("jsonIpDataCity").value = data.city;
document.getElementById("jsonIpDataCountry").value = data.country;
document.getElementById("jsonIpDataOrg").value = data.org;
document.getElementById("jsonIpDataTimeZone").value = data.timezone;
alert(data.isp);
alert(data.city);
alert(data.country);
alert(data.org);
alert(data.timezone);
});
私は昨日試したときに実際にうまくいきましたが、何とか今は例外を引き起こしています。 これに関する助けを本当に感謝します。