Java如何从本地主机而非远程URL获取JSON数据
解决方法
你只需要修改代码中的接口地址为本地服务的实际访问地址即可,操作步骤如下:
- 确认本地接口的访问地址
先确认你自行实现的接口服务启动后监听的端口、路径,比如本地服务跑在8080端口、接口路径为/posts的话,访问地址就是http://localhost:8080/posts,可以先在浏览器输入该地址,确认能正常返回JSON格式数据。 - 修改代码中的地址配置
把原有代码里的远程接口地址替换为上述本地地址即可,修改后参考代码如下:
public class Application { // 此处替换为你本地接口的实际访问地址 public static final String POSTS_API_URL = "http://localhost:8080/posts"; public static void main(String[] args) throws IOException, InterruptedException { HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .GET() .header("accept", "application/json") .uri(URI.create(POSTS_API_URL)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); // 解析JSON ObjectMapper mapper = new ObjectMapper(); List<Post> posts = mapper.readValue(response.body(), new TypeReference<List<Post>>() { }); posts.forEach(System.out::println); } }
- 异常排查
如果修改后仍无法正常获取数据,可以按以下顺序检查:- 确认本地接口服务处于正常运行状态,没有意外退出
- 核对地址的端口、路径和本地接口配置完全一致,不要漏写http前缀、不要写错大小写
- 如果本地接口配置了跨域限制,确保Java请求的来源在允许范围内
- 如果本地接口需要鉴权,要在请求头中添加对应的鉴权参数
内容的提问来源于stack exchange,提问作者Terry Light
相关产品推荐
相关产品推荐

