2016-07-09 8 views
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); 
     }); 

私は昨日試したときに実際にうまくいきましたが、何とか今は例外を引き起こしています。 これに関する助けを本当に感謝します。

答えて

0

私のウイルス対策はアクセスを阻止していました。私はそれを無効にし、今問題を見ていない。

関連する問題