package com.igs.webShop.web.util;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils; import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map; /**
* Created by dbz on 2016/4/5.
*/
public class HttpClientUtil {
/**
*
* @param url 请求的地址
* @param params 请求参数为Map<String,String>,最终会把map里的参数以&拼接起来
* @return
*/
public static String post(String url,Map<String,String> params){
//创建HttpClient对象
HttpClient client=new DefaultHttpClient();
//创建httpPost对象并封装请求参数对象
HttpPost post=postForm(url,params);
String result=null;
//调用发送请求方法
result=invoke(client,post);
//当HttpClient的实例不再需要时,可以使用连接管理器关闭
client.getConnectionManager().shutdown();
return result;
}
public static String get(String url,Map<String,String> params){
DefaultHttpClient client=new DefaultHttpClient();
String result=null;
HttpGet get=new HttpGet(url);
result=invoke(client,get);
client.getConnectionManager().shutdown();
return result;
}
public static HttpPost postForm(String url,Map<String,String> params){
HttpPost httpPost=new HttpPost(url);
List<NameValuePair> nvps=new ArrayList<NameValuePair>();
for(String key:params.keySet()){
nvps.add(new BasicNameValuePair(key,params.get(key)));
}
try {
httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
return httpPost;
}
public static String invoke(HttpClient client,HttpUriRequest request){
HttpResponse response=sendRequest(client,request);
String result=parseResponse(response);
return result;
}
public static HttpResponse sendRequest(HttpClient client,HttpUriRequest request){
HttpResponse response=null;
try{
response=client.execute(request);
}catch (ClientProtocolException cpe){
cpe.printStackTrace();
}catch (IOException ioe){
ioe.printStackTrace();
}
return response;
}
public static String parseResponse(HttpResponse response){
HttpEntity entity=response.getEntity();
String charset= EntityUtils.getContentCharSet(entity);
String result=null;
try{
result=EntityUtils.toString(entity);
}catch (ParseException pe){
pe.printStackTrace();
}catch (IOException ioe){
ioe.printStackTrace();
}
return result;
}
}

HttpClientUtil工具类,待更新的更多相关文章

  1. Android中常用开发工具类—持续更新...

    一.自定义ActionBar public class ActionBarTool { public static void setActionBarLayout(Activity act,Conte ...

  2. 记录一下关于在工具类中更新UI使用RunOnUiThread犯的极其愚蠢的错误

    由于Android中不能在子线程中更新ui,所以平时在子线程中需要更新ui时可以使用Android提供的RunOnUiThread接口,但是最近在写联网工具类的时候,有时候会出现联网异常,这个时候为了 ...

  3. javaSE中级篇2 — 工具类篇 — 更新完毕

    1.工具类(也叫常用类)-- 指的是别人已经写好了的,我们只需要拿来用就行了 官网网址:Overview (Java Platform SE 8 ) (oracle.com) ---- 但是这个是英文 ...

  4. HttpClientUtil 工具类

    /* * * * FileName: s.java * * Description:TODO(用一句话描述该文件做什么) * * Created: jiangzhanghong 2017年11月14日 ...

  5. 通用HttpClientUtil工具类

    package com.*.utils; import java.io.IOException; import java.net.URI; import java.util.ArrayList; im ...

  6. HttpClientUtil 工具类 实现跨域请求数据

    package com.xxx.common.util; import java.io.IOException; import java.net.URI; import java.util.Array ...

  7. HttpClientUtil工具类封装

    package com.jd.ng.shiro.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; ...

  8. Java 类型转换工具类(持续更新)

    简介 将项目中用到的类型转换做个记录. 详细代码 @Component public class TypeUtil { // [start]字符串转各种格式 // 字符串转日期(格式:"yy ...

  9. 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求

    近期更新了一下HttpClientUtil工具类代码,主要是加入了一个參数HttpContext,这个是用来干嘛的呢?事实上是用来保存和传递Cookie所须要的. 由于我们有非常多时候都须要登录.然后 ...

随机推荐

  1. 【BZOJ】3993: [SDOI2015]星际战争

    题意 \(m\)个人\(n\)个物品,第\(i\)个物品生命值为\(A_i\),第\(i\)个人每秒可以减少一个物品\(B_i\)的生命值,给出一个\(m \times n\)的矩阵,如果\(i\)行 ...

  2. 关于 error: Operation is not valid due to the current state of the object。

    今天碰到一个特别的异常. Operation is not valid due to the current state of the object. at System.Web.HttpValueC ...

  3. JVM中,对象在内存中的布局

    在hotSpot虚拟机中,对象在内存中的布局可以分成对象头.实例数据.对齐填充三部分. 对象头:主要包括: 1.对象自身的运行行元数据,比如哈希码.GC分代年龄.锁状态标志等,这部分长度在32位虚拟机 ...

  4. Android 上传图片并添加参数 PHP接收

    php端接收代码: public function get_file(){ $local_path = "./Public/daixu_picture/figure/";//服务器 ...

  5. 第 12 章 Ajax

    学习要点:1.Ajax 概述2.load()方法3.$.get()和$.post()4.$.getScript()和$.getJSON()5.$.ajax()方法6.表单序列化 Ajax 全称为:“A ...

  6. Unity3D设计原则

    原则1:单一职责 原则2:里氏替换原则(子类扩展但不改变父类功能) 原则3:依赖倒置原则 原则4:接口隔离原则 原则5:迪米特法则(最少知道原则) 原则6:开闭原则 原则1:单一职责原则 说到单一职责 ...

  7. javascript学习之带滚动条的图片

    之前找了好久没有找到,就自已动手写了一个: <!DOCTYPE html> <html> <head> <meta charset="utf-8&q ...

  8. fnc.tld学习编写

    使用 el 的过程中,需要使用到后端代码处理逻辑,这个时候我们就需要自定义 方法. 如我们后端代码定义如下: package com.rhythmk.common; public class FncH ...

  9. python学习道路(day5note)(列表生成式,生成器,装饰器,常用模块)

    生成列表的方式 data = [1,2,3]  需求   每个数字加上1 # data = ( x*2 for x in range(5)) print(data)   列表生成式 后面的I赋予加1操 ...

  10. Shell 重定向

    一直没搞懂 &> 和 <& 是表示什么意思. 今天自己总结一下,希望自己能理解它的真正含义. 重定向标准输入输出,切记 “1” 和 “>”之间没有空格 $ > ...