我在程序下面运行以从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
但是,如果我尝试直接从浏览器访问该URL,则不会引发任何问题。
以下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);
});
当我昨天尝试时,这实际上工作正常,但不知何故,它现在导致异常。 真的很感激任何帮助。
答案 0 :(得分:0)
我的防病毒软件阻止了访问。我已经禁用它,现在没有问题。