HttpClient发送Post请求StringEntity 和 UrlEncodedFormEntity
1.StringEntity
StringEntity有两个参数,一个是具体的参数值(string串),另一个是ContentType,默认是text/plain,编码格式是:ISO_5598_1。
使用httpclient时,尽量指定编码方式来初始化StringEntity。
使用HttpClient来发送请求获取数据:拼接出来的body本质是一串Sring,所以可以用StringEntity,使用方法如下:
-
//构造测试数据
-
JSONObject param = new JSONObject();
-
param.put("key","value");
-
//CloseableHttpClient:建立一个可以关闭的httpClient
-
//这样使得创建出来的HTTP实体,可以被Java虚拟机回收掉,不至于出现一直占用资源的情况。
-
CloseableHttpClient client = HttpClients.createDefault();
-
//创建post请求
-
HttpPost post = new HttpPost(testUrl);
-
//生成装载param的entity
-
StringEntity entity = new StringEntity(param.toString(), "utf-8");
-
post.setEntity(entity);
-
//执行请求
-
CloseableHttpResponse response = TestConfig.httpClient.execute(post);
-
//返回string格式的结果
-
String result = EntityUtils.toString(response.getEntity(), "utf-8");
-
//关闭链接
-
post.releaseConnection();
-
client.close();
2.UrlEncodedFormEntity
ContentType就是application/x-www-form-urlencoded,urlEncodeFormEntity会将参数以key1=value1&key2=value2的键值对形式发出。类似于传统的application/x-www-form-urlencoded表单上传。
-
//构造测试数据
-
List<NameValuePair> param = new ArrayList<NameValuePair>();
-
param.add(new BasicNameValuePair("key1","value1"));
-
param.add(new BasicNameValuePair("key2","value2"));
-
//定义HttpClient
-
CloseableHttpClient client = HttpClients.createDefault();
-
//创建post请求
-
HttpPost post = new HttpPost(testUrl);
-
//生成装载param的entity
-
HttpEntity entity = new UrlEncodedFormEntity(param, "utf-8");
-
post.setEntity(entity);
-
//执行请求
-
CloseableHttpResponse response = client.execute(post);
-
//返回string格式的结果
-
String result = EntityUtils.toString(response.getEntity(), "utf-8");
-
//关闭链接
-
post.releaseConnection();
-
client.close();
StringEntity可以用来灵活设定参数格式形式,而UrlEncodeFormEntity则适合于传统表单格式的参数形式。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgeggie
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01