java httpclient简单使用

httpClient 官网

https://hc.apache.org/index.html

https://hc.apache.org/httpcomponents-client-5.1.x/index.html#

这里以httpClient5.1为列

httpClient5.1基本使用

java httpclient简单使用

进入后,可以看到常用demo的一些源代码:

package org.apache.hc.client5.http.examples;

import java.io.IOException;

import org.apache.hc.client5.http.ClientProtocolException;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.core5.http.ClassicHttpResponse;
import org.apache.hc.core5.http.HttpEntity;
import org.apache.hc.core5.http.HttpStatus;
import org.apache.hc.core5.http.ParseException;
import org.apache.hc.core5.http.io.HttpClientResponseHandler;
import org.apache.hc.core5.http.io.entity.EntityUtils;

/**
 * This example demonstrates the use of the {@link HttpClientResponseHandler} to simplify
 * the process of processing the HTTP response and releasing associated resources.

 */
public class ClientWithResponseHandler {

    public static void main(final String[] args) throws Exception {
        try (final CloseableHttpClient httpclient = HttpClients.createDefault()) {
            final HttpGet httpget = new HttpGet("http://httpbin.org/get");

            System.out.println("Executing request " + httpget.getMethod() + " " + httpget.getUri());

            // Create a custom response handler
            final HttpClientResponseHandler responseHandler = new HttpClientResponseHandler() {

                @Override
                public String handleResponse(
                        final ClassicHttpResponse response) throws IOException {
                    final int status = response.getCode();
                    if (status >= HttpStatus.SC_SUCCESS && status < HttpStatus.SC_REDIRECTION) {
                        final HttpEntity entity = response.getEntity();
                        try {
                            return entity != null ? EntityUtils.toString(entity) : null;
                        } catch (final ParseException ex) {
                            throw new ClientProtocolException(ex);
                        }
                    } else {
                        throw new ClientProtocolException("Unexpected response status: " + status);
                    }
                }

            };
            final String responseBody = httpclient.execute(httpget, responseHandler);
            System.out.println("----------------------------------------");
            System.out.println(responseBody);
        }
    }

}

httpclient5.1 使用maven依赖

java httpclient简单使用

进入页面,即可查看:

java httpclient简单使用

java httpclient简单使用

Original: https://www.cnblogs.com/liyuanhong/p/16007750.html
Author: 远洪
Title: java httpclient简单使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/537279/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • nginx伪静态配置教程总结

    在nginx中配置伪静态,也就是常说的url重写功能,只需在nginx.conf配置文件中写入重写规则即可。 当然,这个规则是需要熟悉正则表达式,只掌握nginx自身的正则匹配模式…

    Java 2023年5月30日
    086
  • SpringMVC(1)

    一:SpringMVC简介:它时一种设计模式或者称为设计规范,M既Model层,模型层,主要对应Javaweb时的Dao和service,V即View层,视图层,主要对应Javaw…

    Java 2023年6月9日
    084
  • 注释和良好的编程风格

    注释、良好的编程风格 注释 &#x5206;&#x7C7B;&#xFF1A; &#x5355;&#x884C;&#x6CE8;&am…

    Java 2023年6月7日
    079
  • spring的RestTemplate连接池相关配置

    转发:https://blog.csdn.net/weixin_33724659/article/details/93338398?utm_medium=distribute.pc…

    Java 2023年5月30日
    079
  • 线程池如何保证核心线程一直存活

    转载请注明出处: 查看 ThreadPoolExecutor 类中的 getTask 方法,这个方法可以保持核心线程在没有任务的时候也可以一直处于存活状态 核心在于 workQue…

    Java 2023年5月30日
    0153
  • 多线程 — 哲学家进餐

    题目:https://leetcode-cn.com/problems/the-dining-philosophers 5 个沉默寡言的哲学家围坐在圆桌前,每人面前一盘意面。叉子放…

    Java 2023年5月30日
    0130
  • aardio + VBScript 混合开发

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月16日
    072
  • Yarn安装与配置

    使用 npm 命令安装 *在此之前必须已经安装了 node 和 npm (node自带npm) 全局安装 npm install -g yarn 环境变量–配置环境变量…

    Java 2023年5月29日
    069
  • 现代医院信息化建设策略与实践

    概要: 优化医院服务流程,改善患者就医体验。 支撑门诊医疗服务,提高门诊诊疗水平。 规范急诊业务管理,强化急救治疗能力。 提高医院医疗效率,保障临床医疗质量。 规范护理服务流程,提…

    Java 2023年5月29日
    091
  • Java学习-第一部分-第二阶段-第六节:泛型

    泛型 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 泛型的理解和好处 看一个需求 请编写程序,在ArrayLi…

    Java 2023年6月16日
    072
  • 关于接口设计的思考–我们真的需要这么多入参吗

    最近,我改造一个旧接口时发现,这个接口有 30 多个入参,而事实上并不需要那么多,而且,这个接口还存在比较大的安全隐患。所以,关于如何设计接口入参,我想谈谈自己的一些想法。 当然,…

    Java 2023年6月14日
    070
  • 今年我经历了裸辞,自由职业,再就业

    大家好,我是3y 这是一篇我对2021年的总结文章,记得上一次写这种类型文章的我还是在2019年。没错,2020年我并没有写年终总结。 今天突发奇想,想记录下自己2021年做了些什…

    Java 2023年6月9日
    078
  • java学习之jdbc

    在一些web开发或者是数据存储的时候,肯定会使用到数据库来进行数据存储。而在Java里面需要调用JDBC来对数据库进行操作。每次用jdbc很麻烦,就可以采用一些连接池来解决这个问题…

    Java 2023年6月13日
    072
  • kubernetes V1.16 Ingress-nginx部署

    在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的。为了使外部的应用能够访问集群内的服务,在Kubernetes中可以通过Node…

    Java 2023年5月30日
    0100
  • Java 之 String 类型

    因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 首先String不属于8种基本数据类型(byte, char,…

    Java 2023年5月29日
    064
  • 群晖安装docker 安装neuxs3

    群晖docker 文件夹下创建 docker 下载neuxs3 启动容器 映射端口3003:8081 群晖反向代理。不用https的这一步可以不用,之间路由转发端口3003就行 路…

    Java 2023年6月6日
    084
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球