文档章节

远程调用---HttpClient入门

苗小喵
 苗小喵
发布于 2019/12/06 15:57
字数 638
阅读 54
收藏 0

简介:

HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。

使用方法:

1.创建客户端CloseableHttpClient

2.创建请求方法的实例,并指定URL

    如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。

3.如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HttpParams params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数,可以通过setHeader("content-type","application/json;charset=utf-8")方法来设置请求参数类型为JSON类型,

4.发送请求,调用HttpClient.execute(请求实例的对象),返回的是一个Response对象

5.调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;

    调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容.程序可通过该对象获取服务器的响应内容

6.释放资源     无论执行方法是否成功,都必须释放连接.

 

GET请求实例

@Test
public void testDemo01(){
    try {
        //1 创建Httpclient对象,相当于打开了浏览器
        CloseableHttpClient httpClient = HttpClients.createDefault();

        //2 确定请求方式和请求路径,相当于在浏览器输入地址
        HttpGet httpGet = new HttpGet("http://localhost:9090/user");

        //3 执行请求并获取响应,相当于敲完地址后按下回车。
        CloseableHttpResponse response = httpClient.execute(httpGet);
        // 4 判断状态码是否为200 
        if(response.getStatusLine().getStatusCode() == 200){
            // 5 获得响应体内容
            String str = EntityUtils.toString(response.getEntity());
            System.out.println(str);
        }
        response.close();
        httpClient.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

 

 

POST请求实例


public User  Testlogin(User user){
        CloseableHttpClient httpClient= null;
        CloseableHttpResponse response = null;
        try {
             //1.创建客户端 HttpClient
            httpClient = HttpClients.createDefault();
            //2.创建post请求实例
            HttpPost httpPost = new  HttpPost("http://localhost:9090/user/login");
            //2.1 设置请求类型为json类型
            httpPost.setHeader("content-type","application/json;charset=utf-8");
            //2.2 设置请求参数(请求体)
            String str = JSON.toJSONString(user);
            httpPost.setEntity(new StringEntity(str,"utf-8"));
            //3.发送请求
            response = httpClient.execute(httpPost);

            //4.判断响应状态码为200
            if(response.getStatusLine().getStatusCode() == 200){
                //5.获取响应体内容
                String string = EntityUtils.toString(response.getEntity());

                User loginUser  = JSON.parseObject(string,User.class);
                return loginUser;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                //6.释放资源
                response.close();
                httpClient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

 

© 著作权归作者所有

苗小喵

苗小喵

粉丝 6
博文 28
码字总数 15957
作品 0
宿迁
私信 提问
HttpClient以及整合SpringBoot

一、HttpClient 1.1、 前台系统访问后台接口的方式 两个系统间如何互相访问?两个tomcat上的项目如何互相访问 1.2、 什么是HttpClient 官网:http://hc.apache.org/index.html 现在也叫:Htt...

Armymans
2018/11/10
0
0
.NET Core 2.1中的HttpClientFactory最佳实践

ASP.NET Core 2.1中出现一个新的HttpClientFactory功能, 它有助于解决开发人员在使用HttpClient实例从其应用程序发出外部Web请求时可能遇到的一些常见问题。 介绍 在.NETCore平台的2.1新增了...

dotNET跨平台
2018/08/16
0
0
.NetCore 2.1中的HttpClientFactory最佳实践

.NET Core 2.1中的HttpClientFactory最佳实践 ASP.NET Core 2.1中出现一个新的HttpClientFactory功能, 它有助于解决开发人员在使用HttpClient实例从其应用程序发出外部Web请求时可能遇到的一...

Chaunce
2018/08/14
0
0
HTTP协议和HttpClient的入门

HTTP协议的发展史没有了解,是给予请求与响应模式的、无连接、无状态的应用层的协议。 HTTP协议 HTTP协议的URL HTTP URL(URL是一种特殊类型的URI,包含了勇于查找某个资源的足够的信息)的格式...

凹凸口天
2013/07/15
3.9K
0
使用httpclient实现下拉列表动态填充

以上就是我们需要实现的功能,使用httpclient实现下拉列表的动态填充!!!本案例是基于springboot实现需要有一定的使用基础,使用spring来实现的话相对来说比较麻烦,我们都知道html实现异步...

我叫小糖主
2019/06/16
44
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 宇宙银河乱弹英雄传 —— @FalconChen

1Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :Axxis的单曲《Only God Knows》 最近只听摇滚,挖了好多以前没听过的歌,蛮好。#今日歌曲推荐# 《Only God Knows》- Axxis 手机...

小小编辑
今天
225
2
Safari Date() 函数对日期时间字符串(yyyy-MM-dd HH:mm:ss) 提示NaN的问题

今天发现一个奇怪的问题,在iPhone使用 safari 选择定时发布文章到OSC,选择时间后提示不是合法的时间,判断时间的代码如下: var d = new Date('2020-01-23 23:15'); if (isNaN(d)) {...

FalconChen
昨天
124
0
ActiveMQ学习之通讯协议

一、支持的通讯协议 ActiveMQ支持的client-broker通讯协议有:TCP、NIO、UDP、SSL、HTTP(S)、VM 其中配置Transport Connector的文件在ActiveMQ安装目录的conf/activemq.xml中的<TransportCon...

冥焱
昨天
91
0
应急广播户户通平台

一、平台概述 应急广播户户通平台为软硬一体化广播服务解决方案。实现了应急广播、视音频及图片文字信息、调频及数字广播FM、天气预报信息接收功能,以及视音频播放、智能机器人、电子日历等...

neocean
昨天
133
0
如何为Apache 2.2启用mod_rewrite

我已经在我的Vista机器上安装了新的Apache 2.2,一切正常,除了mod重写。 我没有注释 LoadModule rewrite_module modules/mod_rewrite.s 但是我的重写规则都没有,即使是简单的重写规则 Re...

javail
昨天
53
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部