Java如何从站点获取getString

时间:2017-01-03 08:46:23

标签: java jar

目前我正在尝试如何在jar文件中提取此信息以向服务器传递所需的信息。

当您触发此网址时:

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);

     }

3 个答案:

答案 0 :(得分:1)

http://ipinfo.io/country获取请求会将国家/地区代码作为文本输出返回。

那么为什么不简单地做:

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

如果它直接提供数据并且您要检索单个数据,那么为什么要使用JSON?

答案 1 :(得分:0)

您可以使用以下方式打印:

System.out.println(joinString);

如果您需要GR字符串在您的joinString中作为纯文本。

答案 2 :(得分:0)

它们提供了一个返回JSON和国家/地区代码的JSON API。 但是,请考虑他们告诉您使用他们的服务/ API的内容:

  

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

API returning JSON

(取自https://ipinfo.io/developers/getting-started