package tool; import java.io.File; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.http.HttpHost; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; 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.conn.params.ConnRoutePNames; import org.apache.http.entity.mime.MultipartEntity; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.entity.mime.content.StringBody; 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 org.testng.AssertJUnit; public class HttpTool { private static String defaultUrl="data/"; public static String doMultiPost(String url,Map<String,String> paramMap){ return doMultiPost(url,paramMap,"utf-8",false); } public static String doMultiPost(String url,Map<String,String> paramMap,String charset,boolean setProxy){ try { if(!url.startsWith("http")) url="http://"+url; // 提交HTTP POST请求 HttpPost httpPost = new HttpPost(url); MultipartEntity reqEntity = new MultipartEntity(); for (Map.Entry<String, String> entry : paramMap.entrySet()) { if(entry.getValue().contains("file=")){ String filePath=entry.getValue().split("=")[1]; filePath=defaultUrl+filePath; FileBody file = new FileBody(new File(filePath)); reqEntity.addPart(entry.getKey(), file); }else{ reqEntity.addPart(entry.getKey(), new StringBody(entry.getValue(),Charset.forName(charset))); } } httpPost.setEntity(reqEntity); // 设置HTTP POST请求参数 HttpClient httpClient= new DefaultHttpClient(); //设置代理,可抓包测试,务必打开fiddler if(setProxy){ HttpHost proxy = new HttpHost("127.0.0.1", 8888); httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); } HttpResponse httpResponse = httpClient.execute(httpPost); int statusCode = httpResponse.getStatusLine().getStatusCode(); if ( statusCode== 200||statusCode==201) { String result = EntityUtils.toString(httpResponse.getEntity(),charset); return result; }else{ AssertJUnit.fail("请求返回异常!代码:"+httpResponse.getStatusLine().getStatusCode()); } } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail("发送请求出现异常"+e.getMessage()); } return null; } public static String doPost(String url, Map<String, String> params) { return doPost(url, params,HTTP.UTF_8, false); } /** * 通过POST发送请求 * @param url 请求的URL地址 * @param params 请求的查询参数,可以为null * @param charset 字符集 * @param pretty 是否美化 * @return 返回请求响应的HTML */ public static String doPost(String url, Map<String, String> paramMap, String charset,boolean setProxy) { try { if(!url.startsWith("http")) url="http://"+url; // 提交HTTP POST请求 HttpPost httpPost = new HttpPost(url); if(paramMap!=null){ List<NameValuePair> params=new ArrayList<NameValuePair>(); //建立一个NameValuePair数组,用于存储欲传送的参数 //添加参数 for (Map.Entry<String, String> entry : paramMap.entrySet()) { params.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); } // 设置HTTP POST请求参数 httpPost.setEntity(new UrlEncodedFormEntity(params,charset)); } HttpClient httpClient= new DefaultHttpClient(); //设置代理,可抓包测试,务必打开fiddler if(setProxy){ HttpHost proxy = new HttpHost("127.0.0.1", 8888); httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); } HttpResponse httpResponse = httpClient.execute(httpPost); int statusCode = httpResponse.getStatusLine().getStatusCode(); if ( statusCode== 200||statusCode==201) { String result = EntityUtils.toString(httpResponse.getEntity(),charset); return result; }else{ AssertJUnit.fail("请求返回异常!代码:"+httpResponse.getStatusLine().getStatusCode()+" url:"+url); } } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail("发送请求出现异常"+e.getMessage()+" url:"+url); } return null; } public static String doGet(String url, Map<String, String> params) { return doGet(url, params,HTTP.UTF_8, false); } public static String doGet(String url, Map<String, String> params,boolean setProxy) { return doGet(url, params,HTTP.UTF_8, setProxy); } public static String doGet(String url, Map<String, String> paramMap, String charset,boolean setProxy) { try { if(!url.contains("?")) url+="?"; if(!url.startsWith("http")) url="http://"+url; if(paramMap!=null){ //添加参数 for (Map.Entry<String, String> entry : paramMap.entrySet()) { url+=entry.getKey()+"="+entry.getValue()+"&"; } url= url.substring(0, url.length()-1); } HttpClient httpClient= new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); //设置代理,可抓包测试,务必打开fiddler if(setProxy){ HttpHost proxy = new HttpHost("127.0.0.1", 8888); httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); } HttpResponse httpResponse = httpClient.execute(httpGet); int statusCode = httpResponse.getStatusLine().getStatusCode(); if ( statusCode== 200||statusCode==201) { String result = EntityUtils.toString(httpResponse.getEntity(),charset); return result; }else{ AssertJUnit.fail("请求返回异常!代码:"+httpResponse.getStatusLine().getStatusCode()+" url:"+url); } } catch (Exception e) { e.printStackTrace(); AssertJUnit.fail("发送请求出现异常"+e.getMessage()+" url:"+url); } return null; } }
相关推荐
通过HttpConnection请求跨域接口 public String invokeServiceMethod(String url,Map,String> params,Map, String> header) throws Exception{ HttpClient httpclient=new DefaultHttpClient();...
使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:http://www.javacs.cn/bbs/thread-382-1-1.html 感谢支持 [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中...
[工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt...
1、java工具类RabbitmqUtil是本人封装好的直接使用 2、常用的方法都在里面 3、改一下初始化配置参数就行
jedis的工具类,java代码写的,非常全面,jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类...
Java实现的Https请求工具类。 https的java工具类 Https
java常用的工具类整理28个java常用的工具类整理28个java常用的工具类整理28个
该工具类下载后拷贝到你要用的包,只需该包名即可
本源码包含公众号菜单初始化开发,菜单事件开发,普通token和网页授权token开发工具类,js_ticket获取和缓存,获取openid开发,公众号网络请求封装,xml格式转换工具类,文件上传工具类,关注事件/取消关注事件开发...
java各种工具类:包括日期工具类、字符串工具类、文件工具类、xml读写工具类、json工具类、http访问工具类、压缩包工具类等等。非常齐全
包含了IBM的MQ初始化,发送,接收的工具类,方便极了,可直接放入到项目中。
C#常用工具类代码集合Util第二版本(自己工作总结),包括常用工具类,扩展方法工具类,百度地图C#工具类,Echart工具类,Office工具类,Autofac工具类,Web开发常用工具类,Winform开发常用工具类,是自己工作十年...
J2EE常用工具类汇总 J2EE常用工具类—Value Object工具类 J2EE常用工具类—Json工具 J2EE常用工具类—Jdbc操作 J2EE常用工具类—Hibernate操作 J2EE常用工具类—Cookie操作 J2EE常用工具类—数组操作 J2EE...
HTTPClient工具类,完整,HTTPClient工具类,完整,HTTPClient工具类,完整HTTPClient工具类,完整,HTTPClient工具类,完整
c++常用的工具类源码 包括:文件处理,编码处理,字符串处理,网络爬虫,网页数据的抓取 ,可根据数组规则抓取指定网页的内容(有一个例子)等等
该工具类是Java编写下载即可使用,该工具类中有生成各种长度的订单号,有英文数字混合的,有数字的
RabbitMQClientUtil是MQ的测试工具类,他封装了fanout、direct、topic三种exchange模式,并包括发送数据和接收数据。 Test1、Test2是测试类 使用maven管理,在pom.xml文件中引入如下代码: <!-- Rabbitmq工具包...
C# HttpClientHelper(HttpClient工具类) 包含 同步/异步请求 返回 string/泛型类型/Xml 及一个单例模式 的 SingleHelper 适合做爬虫
org.springframework.web.client.AsyncRestTemplate org.springframework.web.client.RestTemplate HTTP请求工具类,基于以上两个Rest请求工具模板完成封装HTTP请求,包括同步和异步请求的实现。
概述:Java poi导入导出EXCEL工具类(兼容各版本) 一、功能说明 允许同时导入或导出多个sheet,同一sheet可同时存在多个数据块,按数据块划分处理数据。 二、配置文件示例及详细说明 1、导入xml配置示例如下(见...