的Java如何从网站

问题描述:

目前我想如何提取jar文件这一信息通过服务器所需的信息的GetString。的Java如何从网站

当您触发此网址:

http://ipinfo.io/country 

但回报率将在2变量,所以我的问题是如何提取,因为它不是一个JSON。

try { 
     URL obj = new URL("http://ipinfo.io/country"); 

     HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 

     con.setRequestMethod("GET"); 
     con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); 

     con.setDoOutput(true); 
     con.setDoInput(true); 


     int responseCode = con.getResponseCode(); 

     BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 

     String joinString = ""; 
     String decodedString; 
     while ((decodedString = in.readLine()) != null) { 
      joinString = joinString + decodedString; 
     } 
     in.close(); 
     //-- Logging (joinString) & responseCode 
     this.setCountry(new JSONObject(joinString).getString("")); 


    } catch (IOException ex) { 
     Logger.getLogger(RegUserRequest.class.getName()).log(Level.SEVERE, null, ex); 

    } 
+0

可以在字符串列表投放。 – user1211

http://ipinfo.io/country GET请求返回的国家代码作为文本输出。

那么,为什么不干脆做:

BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 
String countryCode = in.readLine(); 

如果直接提供的数据和你有一个单一的数据检索,你为什么要使用JSON?

+0

由于我们强调SOAP API,因此我们正在构建一个JSON以传递到服务器以主要用于getter/setter部分的注册目的。 – FreedomPride

+0

我理解,但您可以以原始方式获取此数据,并在创建我们的JSON对象时使用它。 – davidxxx

+0

因为在应用程序端解码它或?我想知道它是否启发我当前的版本:) – FreedomPride

您可以打印:

System.out.println(joinString); 

如果你需要的GR串在你joinString为纯文本。

+0

如果我想解析它,我需要通过获取字符串来设置它..对吗? – FreedomPride

他们提供了一个JSON API返回JSON和国家代码。 但也请考虑他们告诉你关于使用他们的服务/ API的内容:

我们的API的免费使用每天限制为1,000个API请求。如果您在24小时内 超过1,000个请求,我们会向您返回429个HTTP 状态码。如果您需要提出更多请求或自定义数据,请参阅我们的付费计划,这些计划均具有软限制。

API returning JSON

(来自https://ipinfo.io/developers/getting-started两者)​​

+0

目前,我们正在使用该方法..但在12月19日之后..该jar返回空的国家代码..这就是为什么我需要找到替代方案。 – FreedomPride