目前我正在尝试如何在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);
}
答案 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 状态代码给你。如果您需要提出更多请求或自定义数据, 看看我们的付费计划,这些计划都有软限制。