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. BZOJ2087 : [Poi2010]Sheep

    一条边能连上当且仅当它没有经过任何点,并且两边的点都是偶数个. 枚举原点,通过极角排序求出哪些边是合法的,然后区间DP即可. 时间复杂度$O(nm\log m+n^3)$. #include<c ...

  2. Web服务器基础学习

    1)Socket通信相当于两个人通过电话联系,Http协议相当于电话联系时所使用的中文2)Http1.1前均为短连接,1.1版本为长连接,即服务器接收一次请求并发送响应后会等待一段时间看浏览器是否在这 ...

  3. [LintCode] Add Two Numbers 两个数字相加

    You have two numbers represented by a linked list, where each node contains a single digit. The digi ...

  4. LruCache为GridView异步加载大量网络图片

    MainActivity如下: import android.os.Bundle; import android.widget.GridView; import android.app.Activit ...

  5. GIT如何添加权限模块

    http://blog.chinaunix.net/uid-15174104-id-3843570.html

  6. 中科院开源协会镜像站 Android SDK镜像

    中科院开源协会镜像站 Android SDK镜像测试发布 https://forum.opencas.org/t/184

  7. 1JavaScript简介

    文档对象模型(DOM,Document Object Model)是针对XML但经过扩展用于HTML的应用程序编程接口(API,Application Programming Interface). ...

  8. js windows.open()模拟POST提交

    function openPostWindow (url,name, data1, data2)        {            var tempForm = document.createE ...

  9. Yii2中数据过滤方案

    1. 将数据赋值给model对象再通过model保存数据到数据库时有两种方法. 1) load()再save(). 这种可以通过$model->setScenario('test_scenari ...

  10. 关于datarow的状态

    发现没有添加到DataTable中的行删除则为Detached,添加之后则为Deleted.MSDN对RowState的说明 Detached 该行已被创建,但不属于任何 DataRowCollect ...