HttpClientUtil工具类,待更新
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工具类,待更新的更多相关文章
- Android中常用开发工具类—持续更新...
一.自定义ActionBar public class ActionBarTool { public static void setActionBarLayout(Activity act,Conte ...
- 记录一下关于在工具类中更新UI使用RunOnUiThread犯的极其愚蠢的错误
由于Android中不能在子线程中更新ui,所以平时在子线程中需要更新ui时可以使用Android提供的RunOnUiThread接口,但是最近在写联网工具类的时候,有时候会出现联网异常,这个时候为了 ...
- javaSE中级篇2 — 工具类篇 — 更新完毕
1.工具类(也叫常用类)-- 指的是别人已经写好了的,我们只需要拿来用就行了 官网网址:Overview (Java Platform SE 8 ) (oracle.com) ---- 但是这个是英文 ...
- HttpClientUtil 工具类
/* * * * FileName: s.java * * Description:TODO(用一句话描述该文件做什么) * * Created: jiangzhanghong 2017年11月14日 ...
- 通用HttpClientUtil工具类
package com.*.utils; import java.io.IOException; import java.net.URI; import java.util.ArrayList; im ...
- HttpClientUtil 工具类 实现跨域请求数据
package com.xxx.common.util; import java.io.IOException; import java.net.URI; import java.util.Array ...
- HttpClientUtil工具类封装
package com.jd.ng.shiro.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; ...
- Java 类型转换工具类(持续更新)
简介 将项目中用到的类型转换做个记录. 详细代码 @Component public class TypeUtil { // [start]字符串转各种格式 // 字符串转日期(格式:"yy ...
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
近期更新了一下HttpClientUtil工具类代码,主要是加入了一个參数HttpContext,这个是用来干嘛的呢?事实上是用来保存和传递Cookie所须要的. 由于我们有非常多时候都须要登录.然后 ...
随机推荐
- uploadify前台上传文件,java后台处理的例子
1.先创建一个简单的web项目upload (如图1-1) 2.插件的准备 (1).去uploadify的官网下载一个uploadify插件,然后解压新建个js文件夹放进去(这个不强求,只要路径对了就 ...
- 成功进行了一次UDP打洞
本次测试参数:服务端是公网固定IP:两个客户端A和B分别位于不同电脑,不同宽带,不同型号路由后面(一个家庭路由,一个企业路由),且路由没有经过特别的设置.测试没有什么特别的地方,只是依照网络资料进行实 ...
- LINUX内核参数网络相关
有助于提高网络性能和吞吐量的参数 net.core.somaxconn = 128 已完成连接队列(completed connection queue) (1)三次握手已经完成,但还未被应用层接收( ...
- windows计划任务+批处理文件实现oracle数据库的定时备份与恢复
1. 备份: PS:2014-1-15 如果导出的dmp数据文件不大的话,就直接每天导出好了,不要只保存七天的数据.然后顶起通过winrar对文件进行打包,我发现dmp文件的压缩包还是很高的. 那么 ...
- DS实验题 融合软泥怪-2 Heap实现
题目和STL实现:DS实验题 融合软泥怪-1 用堆实现优先队列 引言和堆的介绍摘自:Priority Queue(Heaps)--优先队列(堆) 引言: 优先队列是一个至少能够提供插入(Insert) ...
- vert.x学习(八),用JDBCClient配合c3p0操作数据库
今天学习了下vert.x的JDBCClient,我这里将今天的学习笔记记录下来.这次学习中使用了c3p0. 用使用JDBCClient和c3p0得现在pom.xml文件里面导入对应的依赖,下面贴出xm ...
- shell (check return of each line)and sudoer
shell result from cmdline echo $? if 0 then success ;else failure (shell 执行每部返回值,rm -rf 错误,打包不能覆盖) 解 ...
- 有关windows系统的EXE和DLL文件说法错误
正确答案: B C 你的答案: C (错误) EXE和DLL文件都是PE文件 EXE不能有导出函数,DLL可以有导出函数 EXE有x86和x64之分,则DLL没有 EXE可以单独运行,DLL则不行 ...
- 项目组织与管理SPM(理论基础)
- MVC+knocKout.js 实现下拉框级联
数据库:部门表和员工表 在控制器里面的操作: public ActionResult Index3() { ViewBag.departments = new SelectList(getDepart ...