public class HttpClientUtils {

    private static final String CHARSET = "UTF-8";

    /*
* http get请求
*
* @param url
*
* @param params
*
* @return
*/
public static String httpGet(String url, Map<String, String> params) { if (true == StringUtils.isEmpty(url)) {
return null;
} List<NameValuePair> pl = getParamList(params); // 转换参数
if (null != pl) {
String urlparams = URLEncodedUtils.format(pl, CHARSET);
url = url + "?" + urlparams;
} DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url); try {
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
if (null != entity) {
return EntityUtils.toString(entity);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} return null;
} /*
* http post请求
*
* @param url
*
* @param params
*
* @return
*/
public static String httpPost(String url, Map<String, String> params) {
if (true == StringUtils.isEmpty(url)) {
return null;
} DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
List<NameValuePair> pl = getParamList(params); // 转换参数
if (null != pl) {
HttpEntity entity;
try {
entity = new UrlEncodedFormEntity(pl);
httppost.setEntity(entity);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
} try {
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
if (null != entity) {
return EntityUtils.toString(entity);
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} return null;
} /*
* 创建标准的NameValuePair格式参数
*
* @param params
*
* @return
*/
public static List<NameValuePair> getParamList(Map<String, String> params) {
if (null == params || 0 == params.size()) {
return null;
} List<NameValuePair> list = new ArrayList<NameValuePair>();
for (Map.Entry<String, String> param : params.entrySet()) {
list.add(new BasicNameValuePair(param.getKey(), param.getValue()));
}
return list;
}
}
  • 测试用例
public class HttpClientUtilsTest extends TestCase {

    private static final String LOG_TAG = "HttpClientUtilsTest";

    public void testHttpGet1(){
String url = "http://192.168.1.101:3000/gettest";
String result = HttpClientUtils.httpGet(url, null);
System.out.println(result);
Log.i(LOG_TAG, result);
} public void testHttpGet2(){
String url = "http://192.168.1.101:3000/gettest";
Map<String,String> map = new HashMap<String,String>();
map.put("username", "fredric");
map.put("password", "fredrictoo"); String result = HttpClientUtils.httpGet(url, map);
System.out.println(result);
Log.i(LOG_TAG, result);
} public void testHttpPost1(){
String url = "http://192.168.1.101:3000/posttest";
Map<String,String> map = new HashMap<String,String>();
map.put("username", "sinny");
map.put("password", "sinnytoo");
String result = HttpClientUtils.httpPost(url, map);
System.out.println(result);
Log.i(LOG_TAG, result);
}
}

公共代码参考(httpclient)的更多相关文章

  1. 公共代码参考(Volley)

    Volley 是google提供的一个网络库,相对于自己写httpclient确实方便很多,本文参考部分网上例子整理如下,以作备忘: 定义一个缓存类: public class BitmapCache ...

  2. Session id实现通过Cookie来传输方法及代码参考

    1. Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间.因此从上述的定义中我们可以看到,Session实际上是一个特定的 ...

  3. 如何在vuejs中抽出公共代码

    当我们在使用vue构建中大型项目时,通常会遇到某些经常用的方法以及属性,比如说搭建一个员工管理系统,请求的url需要一个共同的前缀,或者在某几个view中需要用到时间,这个时间是通过某方法格式化之后的 ...

  4. webpack学习笔记--提取公共代码

    为什么需要提取公共代码 大型网站通常会由多个页面组成,每个页面都是一个独立的单页应用. 但由于所有页面都采用同样的技术栈,以及使用同一套样式代码,这导致这些页面之间有很多相同的代码. 如果每个页面的代 ...

  5. [转] 用webpack的CommonsChunkPlugin提取公共代码的3种方式

    方式一,传入字符串参数 new webpack.optimize.CommonsChunkPlugin(‘common.js’), // 默认会把所有入口节点的公共代码提取出来,生成一个common. ...

  6. webpack4 系列教程(三): 多页面解决方案--提取公共代码

    这节课讲解webpack4打包多页面应用过程中的提取公共代码部分.相比于webpack3,4.0版本用optimization.splitChunks配置替换了3.0版本的CommonsChunkPl ...

  7. 详解用webpack的CommonsChunkPlugin提取公共代码的3种方式(注意webpack4.0版本已不存在)

    Webpack 的 CommonsChunkPlugin 插件,负责将多次被使用的 JS 模块打包在一起. CommonsChunkPlugin 能解决的问题 在使用插件前,考虑几个问题: 对哪些 c ...

  8. webpack配置提取公共代码

    公共代码提取功能是针对多入口文件的: 背景:在pageA.js和pageB.js中分别引用subPageA.js和subPageB.js webpack.config.js文件: var path = ...

  9. 系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层

    系统管理模块_部门管理_改进1:抽取添加与修改JSP页面中的公共代码 commons.jspf <%@ page language="java" import="j ...

随机推荐

  1. Asp.Net MVC4入门指南(4):添加一个模型

    在本节中,您将添加一些类,这些类用于管理数据库中的电影.这些类是ASP.NET MVC 应用程序中的"模型(Model)". 您将使用.NET Framework 数据访问技术En ...

  2. REDIS源码中一些值得学习的技术细节02

    Redis中散列函数的实现: Redis针对整数key和字符串key,采用了不同的散列函数 对于整数key,redis使用了 Thomas Wang的 32 bit Mix Function,实现了d ...

  3. js中设置元素class的三种方法小结

     一.el.setAttribute('class','abc'); 代码如下: .abc { background: red; } test div var div = document.getEl ...

  4. net软件自动生成开发编程框架编程机器人

    有一个.net自动生成平台(编程机器人)推荐给大家,常规几天十几天的工作,机器人几分钟搞定,不写一行代码,留下大把休闲时光,适应于聪明人:不想太累的程序员(看看风景泡泡妞),不想多请人的老板(有限资金 ...

  5. js模块和级联

    1.模块 模块模式的一般形式是:一个定义了私有变量和函数的函数,利用闭包创建可以访问私有变量和函数的特权函数,最后返回这个特权函数,或者把它们保存到一个可访问的地方.使用模块模式就可以摒弃全局变量的使 ...

  6. Linux下Hadoop2.6.0集群环境的搭建

    本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 基础环境 JDK的安装与配置 现在直接到Oracle官网(http:/ ...

  7. Win10上使用SVN遇到的一些问题

    最近使用上了Win10,遇到了很多问题,前一段时间是MVC3项目的问题,今天又遇到了SVN工具使用的相关问题.我这个环境是WIN 10,64位,SVN工具是TortoiseSVN-1.9.2.2680 ...

  8. psp工具需求分析

    PSP个人软件过程开发工具需求分析文档 a.业务需求    a.1 背景 二十一世纪是软件开发的黄金时期,有人把过去的十年称作软件高度发展的十年,不可置疑,越来越多的软件设计需求是物联网时代的趋势,越 ...

  9. 轮播神器swiper插件

    Swiper中文网:http://www.swiper.com.cn/ Swiper- 是免费的,最现代化的移动触摸滑块硬件加速的转换和惊人的天然行为.它的目的是在移动网站,移动网络应用和移动本地/混 ...

  10. Markdown示例

    欢迎使用 Cmd Markdown 编辑阅读器 我们理解您需要更便捷更高效的工具记录思想,整理笔记.知识,并将其中承载的价值传播给他人,Cmd Markdown 是我们给出的答案 -- 我们为记录思想 ...