美文网首页
HttpClient 发送HttpPost推送数据

HttpClient 发送HttpPost推送数据

作者: 以南之南_b9a1 | 来源:发表于2018-01-17 15:03 被阅读0次

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

1.了解Http

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

1.创建Httpclient 

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

如:HttpClient httpClient = new DefaultHttpClient();  

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

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

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

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

二。创建HttpPost请求

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

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

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

三。创建一个HttpEntity

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

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

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请求 到这里就Ok 了 其实也可以发送HttpGet请求的哦,可以按照我的代码发送一个Get请求哦。

相关文章

网友评论

      本文标题:HttpClient 发送HttpPost推送数据

      本文链接:https://www.haomeiwen.com/subject/ovtuoxtx.html