博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HttpComponents (http 客户端) 常用类简介
阅读量:6453 次
发布时间:2019-06-23

本文共 2318 字,大约阅读时间需要 7 分钟。

http://hc.apache.org/
阿帕奇的开源项目。用于Http通信。
org.apache.httpcomponents
httpclient
4.5.1

1.client

org.apache.http.client.
HttpClient
接口。
CloseableHttpClient org.apache.http.impl.client.HttpClients.
createDefault()
此方法可以拿到HttpClient对象。它是线程安全的。

2.request

org.apache.http.
HttpRequest
接口。实现类有HttpGet、HttpPost等。
org.apache.http.client.methods.
HttpUriRequest
继承了HttpRequest接口的接口。
void org.apache.http.message.AbstractHttpMessage.
addHeader(String name, String value)
添加请求的头部信息。
org.apache.http.client.methods.
HttpGet
代表HttpGet请求。
org.apache.http.client.methods.
HttpPost
代表HttpPost请求。

2.1 get请求

org.apache.http.client.methods.HttpGet.
HttpGet(String uri)
HttpGet请求的构造函数。

2.2 post请求

org.apache.http.client.methods.HttpPost.
HttpPost(String uri)
HttpPost请求的构造函数。
org.apache.http.entity.StringEntity.
StringEntity(String string) 
http报文body的格式是字符串。用于构造json、xml类post请求。

3.设置参数

Builder org.apache.http.client.config.RequestConfig.
custom()
拿到builder。
Builder org.apache.http.client.config.RequestConfig.Builder.
setSocketTimeout(int socketTimeout)
设置socket链接超时。
Builder org.apache.http.client.config.RequestConfig.Builder.
setConnectionTimeout(int connectionRequestTimeout)
设置http连接超时。socket超时是http超时的充分不必要条件。
Builder org.apache.http.client.config.RequestConfig.Builder.
setConnectionRequestTimeout(int connectionRequestTimeout)
设置请求发出前的超时时间。适用于用连接池,连接池占满的情况。
RequestConfig org.apache.http.client.config.RequestConfig.Builder.
build()
至此拿到了RequestConfig 对象。
void org.apache.http.client.methods.HttpRequestBase.
setConfig(
RequestConfigconfig)
设置连接超时等在内的参数。RequestConfig对象的生成见下行。
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(2000).build();

4.execute

CloseableHttpResponse org.apache.http.impl.client.CloseableHttpClient.
execute(HttpUriRequest request) 
执行请求并返回结果,是同步函数,需要等待。

5.response

org.apache.http.client.methods.
CloseableHttpResponse
接口。
StatusLine org.apache.http.HttpResponse.
getStatusLine()
获取状态栏。
HttpEntity org.apache.http.HttpResponse.
getEntity()
获取消息实体。
InputStream org.apache.http.HttpEntity.
getContent()
获取内容。如果是文本数据,通常这样来拿。
Scanner scanner = new Scanner(instream, "utf-8");
void org.apache.http.util.EntityUtils.
consume(HttpEntity entity) 
调用HttpEntity.getContent()就得到了InputStream,此方法用于把流消费完,然后关掉这个InputStream。

6.代码

转载地址:http://pawzo.baihongyu.com/

你可能感兴趣的文章
微软的Framework导致该内存不能为written或read的错误?
查看>>
C#强化系列文章九:代码访问安全性使用
查看>>
顺序表的算法
查看>>
用 PyMedia 解码并播放 mp3 文件
查看>>
走在网页游戏开发的路上(一)
查看>>
优秀的Web开发人员是这样炼成的 (share)
查看>>
信息收集工具(ReconDog)
查看>>
LINUX-内核-中断分析-中断向量表(3)-arm【转】
查看>>
unity3d 学习笔记(两)
查看>>
如何安装配置Intelligent landing page for AIMS/MapGuide Ajax viewer
查看>>
DOS下从硬盘安装XP系统方法与要点
查看>>
MapGuide应用开发系列
查看>>
使用 Python 开始你的机器学习之旅【转】
查看>>
IIS Enabling HTTP Keep-Alives
查看>>
备忘录模式(Memento)
查看>>
怎样用Javascript停止或者启动AJAX Timer
查看>>
第19届Jolt大奖揭晓(转载)
查看>>
【原】iOS容易造成循环引用的三种场景,就在你我身边!
查看>>
【SQL】关于无法附加文件的错误
查看>>
Linux中断(interrupt)子系统之二:arch相关的硬件封装层【转】
查看>>