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日

相关文章

  • 分享Java常用开发编辑器工具

    下面是详细的讲解。 分享Java常用开发编辑器工具 一、介绍 Java是一种广受欢迎的编程语言,它可以帮助开发人员快速、高效地编写和调试代码。但想要成为一名优秀的Java开发人员,除了熟悉语言规范和基础知识外,还需要掌握一些高效的开发工具。本文将分享一些常用的Java开发编辑器工具,帮助Java开发人员更高效地编写代码。 二、常用的Java开发编辑器工具 1…

    Java 2023年5月23日
    00
  • Java 7大常见排序方法实例详解

    Java 7大常见排序方法实例详解 排序算法是计算机科学中的重要技能之一,Java为开发者提供了多种常见的排序方法,本文将介绍Java 7大常见排序方法并提供详细的示例说明。 1. 冒泡排序(Bubble Sort) 冒泡排序是最简单的排序算法之一,它的思想是依次比较相邻的两个元素,如果前面的元素比后面的元素大,则交换这两个元素的位置,通过多次比较和交换,将…

    Java 2023年5月26日
    00
  • 在(ASP/PHP/JSP/html/js)中禁止ajax缓存的方法集锦

    在ASP、PHP、JSP、HTML、JS中,我们可以采用不同的方式来禁止AJAX缓存。以下是几种常用方法: 在ASP中禁止AJAX缓存 在ASP中,我们可以在页面头部添加以下代码来禁止AJAX缓存: <% Response.AppendHeader "Cache-Control", "no-cache" Resp…

    Java 2023年6月15日
    00
  • Java实现5种限流算法及7种限流方式

    Java实现5种限流算法及7种限流方式攻略 本文将介绍5种限流算法以及7种限流方式在Java中的实现,其中限流算法包括令牌桶、漏桶、计数器、滑动窗口和基于Hystrix的断路器。限流方式包括拦截器、过滤器、注解、配置、缓存、队列和断路器。 1.令牌桶 算法原理 令牌桶算法基于生产令牌和消费令牌的方式控制流量。生产令牌的速率是固定的,而当请求到达时,每个请求消…

    Java 2023年5月19日
    00
  • Java安全管理的作用是什么?

    Java安全管理是Java平台提供的一种安全机制,它主要通过控制和管理Java应用程序的访问权限来保护计算机系统的安全。其主要作用包括: 控制Java程序的访问权限:Java安全管理模块通过控制Java程序对系统资源的访问权限,来保证系统安全。它可以限制程序对文件、网络、系统环境等资源的访问,从而防止恶意程序通过访问系统资源进行非法操作。 保障Java虚拟机…

    Java 2023年5月11日
    00
  • Java+Swing实现医院管理系统的完整代码

    Java+Swing实现医院管理系统的完整代码攻略,过程中包含以下步骤: 1. 确定功能模块 医院管理系统经常包含的功能模块有:用户登录、信息展示、病人管理、医生管理、挂号、收费、报表统计等。 2. 数据库设计 医院管理系统需要管理病人、医生、科室、挂号、病历等数据。可以设计ER图和表结构,在MySQL中创建匹配的字段和表。 3. 前端设计 使用Java S…

    Java 2023年5月19日
    00
  • JSP + ajax实现输入框自动补全功能 实例代码

    下面是详细的攻略: 1. 需求分析 我们需要实现一个输入框自动补全的功能,即当用户在输入框中输入文字时,能够实时推荐可能的匹配结果。因此,我们需要使用ajax技术,实现在输入框输入字符时动态加载匹配的数据。 2. 技术栈 JSP:Java服务器页面,用于生成动态网页; ajax:用于异步加载数据,对局部网页内容进行更新; 3. 实现步骤 3.1 创建JSP页…

    Java 2023年6月15日
    00
  • Java实现中国象棋的示例代码

    下面是“Java实现中国象棋的示例代码”的完整攻略: 1. 确定需求和分析 在实现中国象棋的过程中,需要先明确需求和进行分析。具体来说,我们需要了解中国象棋的规则、棋盘、棋子等基本信息,然后根据需求进行代码的设计和实现。 2. 代码设计 首先,我们需要了解如何存储和表示棋盘和棋子的信息。一般而言,可以使用二维数组来表示棋盘,然后用整数或字符来表示棋子的种类。…

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