在上一篇文章中,使用了JDK中原始的HttpURLConnection向指定URL发送POST请求

可以看到编码量有些大,并且使用了输入输出流

传递的参数还是用“name=XXX”这种硬编的字符串进行传递的

下面介绍一下apache commons项目中的apache http组件中的HttpClient

用这种方式可以很快的使用键值对参数向URL发送请求

package com.newflypig.demo;

/**
* 使用apache http组件提供的HttpClient向URL发送POST请求
* 参数使用键值对传递
*/ import java.util.ArrayList;
import java.util.List; import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils; public class SendPostDemo2 { public static void main(String[] args) throws Exception{
HttpClient client=HttpClients.createDefault();
HttpPost post=new HttpPost("http://localhost:8080/Test1/HelloWorld"); List<NameValuePair> parameters=new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("name", "丁丁"));
post.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8")); HttpResponse response=client.execute(post);
System.out.println(EntityUtils.toString(response.getEntity()));
}
}

apache http组件可以从http://hc.apache.org/downloads.cgi下载,最新版本4.5,跟3.X版本使用方法有较大差异。

使用这种方式无论输入输出都封装得很舒服,大家可以借鉴一下。

最新文章

  1. [转].net core 通过ViewComponent封装控件 左侧菜单
  2. sqlserver添加主键
  3. Deep Learning 25:读论文“Network in Network”——ICLR 2014
  4. 我 &amp;&amp; yii2(日志埋点,邮件提醒)
  5. jquery分隔Url的param方法
  6. 写启动界面Splash的正确姿势,解决启动白屏(转)
  7. 微信或移动端网页的meta
  8. ubuntu hash sum mismatch error
  9. 使用递推解题:EOJ2999
  10. [ionic开源项目教程] - 第11讲 封装BaseController实现controller继承
  11. 【Java框架型项目从入门到装逼】第四节 - 编写第一个Servlet程序
  12. R语言-探索多个变量
  13. wpf datagrid row height 行高自动计算使每行行高自适应文本
  14. Dubbo 支持哪些序列化协议?
  15. WiFi的名词缩写
  16. 定义JQuery插件
  17. hdu 6114 chess(排列组合)
  18. openpose 问题
  19. linux route命令使用
  20. Python——开篇之词

热门文章

  1. easyui页面布局
  2. GNOME与KDE的战争
  3. C# - 设置DLL的属性Embed Interop Type 设为False
  4. MVC3中在同一解决方案的不同项目中实现Area功能
  5. XML注入介绍--XXE,XEE,xpath等
  6. C# Log4Net配置
  7. 让IE系列浏览器支持HTML5(share)
  8. lintcode :Integer to Roman 整数转罗马数字
  9. lintcode 中等题:digits counts 统计数字
  10. ibatis缓存初探(1)