Java获取http和https协议返回的json数据

获取HTTP/HTTPS协议返回的JSON数据可以通过Java提供的HttpClient库来实现。以下是完整的攻略:

准备工作

在使用HttpClient库之前,需要先引入该库。可以在Maven项目中添加以下依赖:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.12</version>
</dependency>

发送HTTP GET请求获取JSON数据

下面是一个示例代码,使用HttpGet方法发送HTTP GET请求获取JSON数据:

import java.io.IOException;
import java.util.Scanner;
import org.apache.http.HttpEntity;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class HttpJsonGetDemo {
  public static void main(String[] args) throws IOException {
    HttpClient httpClient = HttpClients.createDefault();
    HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/todos/1");

    HttpEntity responseEntity = httpClient.execute(request).getEntity();
    String responseString = EntityUtils.toString(responseEntity);

    ObjectMapper mapper = new ObjectMapper();
    JsonNode node = mapper.readTree(responseString);
    int id = node.get("id").asInt();
    String title = node.get("title").asText();
    boolean completed = node.get("completed").asBoolean();

    System.out.println("id: " + id);
    System.out.println("title: " + title);
    System.out.println("completed: " + completed);
  }
}

在这个示例中,我们使用了 HttpClient 发送了一个 HttpGet 请求,并获取返回数据后将其解析成一个 JsonNode 对象。

发送HTTPS GET请求获取JSON数据

如果需要访问HTTPS站点,需要对 HttpClient 进行配置。以下示例展示如何配置并发送HTTP GET请求:

import java.io.IOException;
import org.apache.http.HttpEntity;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContexts;
import org.apache.http.ssl.TrustStrategy;
import org.apache.http.util.EntityUtils;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class HttpsJsonGetDemo {
  public static void main(String[] args) throws Exception {
    HttpClient httpClient = HttpClients.custom()
        .setSSLContext(SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() {
          @Override
          public boolean isTrusted(java.security.cert.X509Certificate[] chain, String authType)
              throws java.security.cert.CertificateException {
            return true;
          }
        }).build())
        .build();

    HttpGet request = new HttpGet("https://jsonplaceholder.typicode.com/todos/1");

    HttpEntity responseEntity = httpClient.execute(request).getEntity();
    String responseString = EntityUtils.toString(responseEntity);

    ObjectMapper mapper = new ObjectMapper();
    JsonNode node = mapper.readTree(responseString);
    int id = node.get("id").asInt();
    String title = node.get("title").asText();
    boolean completed = node.get("completed").asBoolean();

    System.out.println("id: " + id);
    System.out.println("title: " + title);
    System.out.println("completed: " + completed);
  }
}

在这个示例中,我们使用自定义的 HttpClient,将其SSL使用的证书设置为信任所有证书,从而允许访问HTTPS站点。通过以上示例代码,可以方便地使用Java获取http和https协议返回的JSON数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java获取http和https协议返回的json数据 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Tomcat集群和Session复制应用介绍

    Tomcat集群和Session复制应用介绍 什么是Tomcat集群 Tomcat集群是将多个Tomcat服务器组成一个集群,通过负载均衡算法来实现请求的分发和处理。其优点在于提高应用的可靠性、提高应用的性能、可以动态扩展集群规模等。 Tomcat集群的实现方式 AJP协议连接多个Tomcat服务器,实现负载均衡和Session复制。 使用第三方的负载均衡器…

    Java 2023年5月19日
    00
  • 只需两步实现Eclipse+Maven快速构建第一个Spring Boot项目

    我会详细讲解“只需两步实现Eclipse+Maven快速构建第一个Spring Boot项目”的完整攻略,过程中会包含两条示例,供大家参考。 1. 新建Maven工程 打开Eclipse,选择File -> New -> Maven Project 在弹出的窗口中,选择archetype,并在Search框中输入“spring-boot”,选择最…

    Java 2023年5月19日
    00
  • 使用Java实现5种负载均衡算法实例

    使用Java实现5种负载均衡算法的完整攻略如下: 算法简介 负载均衡是指将请求分配到多个服务器上以达到最大化利用每个服务器的目的。在实际应用中,常用的负载均衡算法有很多种,常见的有以下五种: 轮询算法:按照服务器列表中的顺序依次将请求分配到每台服务器上,然后再从头开始,循环分配请求。轮询算法适用于所有的服务器具有相同的处理能力并且请求量相差不大的情况。 随机…

    Java 2023年5月18日
    00
  • Java的Struts框架报错“ValidationException”的原因与解决办法

    当使用Java的Struts框架时,可能会遇到“ValidationException”错误。这个错误通常由以下原因之一起: 表单验证失败:如果表单验证失败,则可能会出现此错误。在这种情况下,需要检查表单验证规则以解决此问题。 配置错误:如果配置文件中没有正确配置,则可能会现此错误。在这种情况下,检查文件以解决此问题。 以下是两个实例: 例 1 如果表单验证…

    Java 2023年5月5日
    00
  • JSP中一些JSTL核心标签用法总结

    下面是关于“JSP中一些JSTL核心标签用法总结”的完整攻略: JSP中一些JSTL核心标签用法总结 JSTL是JSP标准标签库,提供了在JSP页面中进行流程控制、条件判断、数据遍历等操作的标签库。JSTL核心标签库是JSTL标签库的核心部分,包含了最基本、使用频率最高的标签。 1.引入JSTL标签库 在使用JSTL标签之前,需要先引入JSTL库,在JSP页…

    Java 2023年6月15日
    00
  • Java实现天天酷跑小游戏完整代码(附源码)

    Java实现天天酷跑小游戏完整代码(附源码) 简介 天天酷跑是一款非常有趣的小游戏,如何在Java中实现这个小游戏呢?以下是完整的Java实现天天酷跑小游戏的代码,包括Java Swing界面、游戏逻辑等部分。 游戏界面 本游戏的界面使用了Java Swing库,实现了基本的图形化界面。其中,我们使用JPanel来绘制游戏场景,使用JLabel来绘制游戏角色…

    Java 2023年5月23日
    00
  • Struts2 使用OGNL遍历map方法详解

    Struts2 中遍历 Map 对象 首先,我们需要在 Struts2 的 jsp 页面中通过<s:iterator>标签来遍历 Map 类型的对象。这个标签包含了一个 value 属性,用于读取 map 中的值,具体如下: <s:iterator value="myMap"> Key: <s:propert…

    Java 2023年6月15日
    00
  • Java基础类学习之String详解

    Java基础类学习之String详解 1. 什么是String String是Java语言中常用的引用类型,代表一个字符串对象。在Java程序中,我们可以通过创建String对象的方式或者直接赋值的方式来定义一个String类型的变量。 // 创建String对象 String str1 = new String("Hello World&quot…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部