博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HttpClient的使用
阅读量:5898 次
发布时间:2019-06-19

本文共 2442 字,大约阅读时间需要 8 分钟。

hot3.png

 

有时候我们需要进行远程调用,跨域,有很多可选方案,例如 jsonp ,RMI,   HttpClient.

我感觉 HttpClient属于一次写好,以后只要直接用就可以了,很方便,节约时间。

/* * 利用HttpClient进行post请求的工具类 */public class HttpClientUtil {		public static String doPost(String url,Map
map,String charset){ HttpClient httpClient = null; HttpPost httpPost = null; String result = null; try{ httpClient = new SSLClient(); httpPost = new HttpPost(url); //设置参数 List
list = new ArrayList
(); Iterator
> iterator = map.entrySet().iterator(); while(iterator.hasNext()){ Entry
elem = (Entry
) iterator.next(); list.add(new BasicNameValuePair(elem.getKey(),elem.getValue())); } if(list.size() > 0){ UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,charset); httpPost.setEntity(entity); } HttpResponse response = httpClient.execute(httpPost); if(response != null){ HttpEntity resEntity = response.getEntity(); if(resEntity != null){ result = EntityUtils.toString(resEntity,charset); } } }catch(Exception ex){ ex.printStackTrace(); } return result; }}
public class SSLClient  extends DefaultHttpClient{	public SSLClient() throws Exception{        super();        SSLContext ctx = SSLContext.getInstance("TLS");        X509TrustManager tm = new X509TrustManager() {                public void checkClientTrusted(X509Certificate[] chain,                        String authType) throws CertificateException {                }                public void checkServerTrusted(X509Certificate[] chain,                        String authType) throws CertificateException {                }                public X509Certificate[] getAcceptedIssuers() {                    return null;                }        };        ctx.init(null, new TrustManager[]{tm}, null);        SSLSocketFactory ssf = new SSLSocketFactory(ctx,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);        ClientConnectionManager ccm = this.getConnectionManager();        SchemeRegistry sr = ccm.getSchemeRegistry();        sr.register(new Scheme("https", 443, ssf));    }}

 

调用:

/**	 *方法用途:使用	 *@param args	 *2017年1月11日	 */	public static void main(String[] args) {		String url="";		Map
param=new HashMap
(); String charset="utf-8"; String result=doPost(url,param,charset); System.out.println(result); }

 

param 的 key 为参数名称, value 为参数的值。对方可以用过 request.getParameter("");得到值。

 

 

 

转载于:https://my.oschina.net/u/2611757/blog/823195

你可能感兴趣的文章
Linux 进程中 Stop, Park, Freeze【转】
查看>>
PHP盛宴——经常使用函数集锦
查看>>
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>
笔记:认识.NET平台
查看>>
cocos2d中CCAnimation的使用(cocos2d 1.0以上版本)
查看>>
gitlab 完整部署实例
查看>>
SCCM 2016 配置管理系列(Part8)
查看>>
struts中的xwork源码下载地址
查看>>
我的友情链接
查看>>
PHP 程序员的技术成长规划
查看>>
python基础教程_学习笔记19:标准库:一些最爱——集合、堆和双端队列
查看>>
js replace,正则截取字符串内容
查看>>
javascript继承方式详解
查看>>
lnmp环境搭建
查看>>
自定义session扫描器精确控制session销毁时间--学习笔记
查看>>
仿射变换
查看>>
视频直播点播nginx-rtmp开发手册中文版
查看>>
PHP队列的实现
查看>>