You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JAVA解析https://iplist.cc/api的JSON数据并提取countryname值

你代码存在的问题

  • 用了早已弃用的DefaultHttpClient类,该类属于Apache HttpClient组件,普通JavaSE高版本、Android新版本均已不再内置该类,运行直接报类找不到错误
  • 接口https://iplist.cc/api仅支持GET请求,你用了HttpPost发请求,会被接口拒绝返回错误
  • Log类是Android平台特有API,普通Java项目没有该类,编译直接报错
  • 代码语法不完整:调用逻辑块的大括号不匹配,country变量未提前声明就直接赋值
  • 未判断HTTP响应状态码,即使接口返回4xx/5xx错误也强行解析内容,会出现JSON解析异常
  • 静态变量使用不当:请求相关对象设为静态值,多次调用会出现数据覆盖、线程安全问题

修复后的完整可运行代码(基于JDK11+自带HttpClient,无需额外导HTTP相关包)

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import org.json.JSONObject;

public class IpCountryParser {
    private static final String API_URL = "https://iplist.cc/api";
    private static final String COUNTRY_FIELD = "countryname";

    public static void main(String[] args) {
        try {
            // 构建HTTP客户端和GET请求
            HttpClient client = HttpClient.newHttpClient();
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create(API_URL))
                    .GET()
                    .build();

            // 发送请求获取字符串响应
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            
            // 判断请求是否成功
            if (response.statusCode() != 200) {
                System.out.println("请求失败,状态码:" + response.statusCode());
                return;
            }

            // 解析JSON提取国家名称
            JSONObject json = new JSONObject(response.body());
            String countryName = json.getString(COUNTRY_FIELD);

            // 直接输出国家名
            System.out.println(countryName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

依赖补充说明

如果运行时提示找不到org.json.JSONObject类,在Maven项目的pom.xml里添加如下依赖即可:

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20240303</version>
</dependency>

内容的提问来源于stack exchange,提问作者ejade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:27:05