HttpClient 发送HttpPost推送数据

近日,公司决定使用HttpClient 发送HttpPost请求,跟浦发银行对接数据。发送HttpPost请求传输数据,想讲一下如何用HttpClient 客户端发送HttpPost 请求,传输数据。

1.了解Http

        http:为超文本传输协议,是互联网通讯最基础的协议是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少

1.创建Httpclient 

HttpClient 发送HttpPost推送数据_第1张图片

如java Api所示 HttpClient 是一个接口 ,因此创建HttpClient需创建他的实现类。

如:HttpClient httpClient = new DefaultHttpClient();  

HttpClient 发送HttpPost推送数据_第2张图片

或者使用Builder 模式 HttpClient httpClient = HttpClientBuilder.create().build();

或许在这里有人问了。HttpClientBuilder 是什么。。我们可以一起去看看Api 

HttpClient 发送HttpPost推送数据_第3张图片

从这里可以看出HttpClientBuilder 是一个类 该类基础Object 可以创建一个CloseableHttpClient 该类也实现了 HttpClient客户端。那么create()和builde()方法呢

HttpClient 发送HttpPost推送数据_第4张图片

那么HttpClient客户端创建好了如何创建请求呢?

二。创建HttpPost请求

HttpClient 发送HttpPost推送数据_第5张图片

从文档可以看出来HttpPost 是一个类 那么我们可以直接实例化这个类  HttpPost httpPost = new HttPost("192.168.0.1"); 然后我们可以看构造器需要传递什么参数

HttpClient 发送HttpPost推送数据_第6张图片

分别为空,String url和URI 类型的 

HttpPost请求出来了,那么我们如何传递和设置参数呢

三。创建一个HttpEntity

HttpClient 发送HttpPost推送数据_第7张图片

从反编译可以看出HttpEntity是一个接口 ,那么实现这个接口的有那些类呢?AbstractHttpEntity,BasicHttpEntity,BufferedHttpEntity,ByteArrayEntity,InputStreamEntity,StringEntity。这些接口都实现了HttEntity 接口

我们就以ByteArrayEntity 经行讲解 从API可以看出 ByteArrayEntity的参数

HttpClient 发送HttpPost推送数据_第8张图片

HttpEntity httpEntity = new ByteArrayEntity(json.getBytes("UTF-8"),ContentType.APPLICATION_JSON);

httpEntity 是用来设置和传递传输的。如何赋给HttpPost呢

用HttpPost.setEntity(httpEntity)赋值给HttpPost;

HttpClient 和HttpPost 和HttpEntity 创建好了 ?就可以了忙? 不还差一点

如:需要设置 该请求的超时时间。如果不设置超时时间,会导致该请求长时间等待,无法相应。

1.实例化一个RequestConfig 对象

 RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeOUt(3000).setConnectionTimeOut(300).setSocketTimeout(3000).setStaleConnectionCheckEnabled(3000).build();

2.HttpPost.setConfig(requestConfig); 这样就可以设置当前HttpPost请求是否超时了

好了,现在我们就可以利用HttpClient发送httpPost请求了

HttpClient.excete(httpPost);

以下是我封装好的代码,请各位有错在下方留言


HttpClient 发送HttpPost推送数据_第9张图片

好啦,HttpClient发送HttpPost请求 到这里就Ok 了 其实也可以发送HttpGet请求的哦,可以按照我的代码发送一个Get请求哦。

你可能感兴趣的:(HttpClient 发送HttpPost推送数据)