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; } }
相关推荐
java 转义和反转义工具类 java 转义和反转义工具类java 转义和反转义工具类 java 转义和反转义工具类java 转义和反转义工具类 java 转义和反转义工具类java 转义和反转义工具类 java 转义和反转义工具类java 转义和...
java sql 工具类 java sql 工具类 java sql 工具类java sql 工具类 java sql 工具类 java sql 工具类java sql 工具类 java sql 工具类 java sql 工具类java sql 工具类 java sql 工具类 java sql 工具类java sql ...
java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java 获取地址工具类 java 获取地址工具类java ...
`RabbitmqUtil` 是一个专门为Java开发者设计的工具类,简化了与RabbitMQ交互的复杂过程,使得开发者能够更快速、更方便地发送和接收消息。 首先,我们来详细了解一下`RabbitmqUtil`工具类的主要功能: 1. **连接...
java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java Tcp 客户端工具类java Tcp 客户端工具类 java ...
在C#编程中,工具类库是开发人员经常会用到的一种资源,它们提供了一系列预定义的方法和功能,以便简化各种常见的编程任务。标题中的"C#工具类库类库 包含所有的常用工具类"暗示了这是一个集合,包含了多种实用工具...
java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析工具类 java xml解析工具类java xml解析...
在C++编程中,工具类是非常重要的一部分,它们提供了一系列通用功能,可以帮助开发者更高效地进行项目开发。本文将深入探讨标题"**C++工具类-常用工具类源码**"所涵盖的知识点,主要围绕文件处理、编码处理、字符串...
java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件上传工具类java 文件...
java 文件处理工具类 java 文件处理工具类java 文件处理工具类java 文件处理工具类java 文件处理工具类 java 文件处理工具类java 文件处理工具类java 文件处理工具类java 文件处理工具类 java 文件处理工具类java ...
java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java ...
spring Security 工具类 spring Security 工具类spring Security 工具类 spring Security 工具类spring Security 工具类 spring Security 工具类spring Security 工具类 spring Security 工具类spring Security 工具...
使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:http://www.javacs.cn/bbs/thread-382-1-1.html 感谢支持 [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中...
java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志工具类java日志工具类 java日志...
java 客户端工具类 java 客户端工具类java 客户端工具类 java 客户端工具类java 客户端工具类 java 客户端工具类java 客户端工具类 java 客户端工具类java 客户端工具类 java 客户端工具类java 客户端工具类 java ...
微信小程序支付所需工具类微信小程序支付所需工具类微信小程序支付所需工具类微信小程序支付所需工具类微信小程序支付所需工具类微信小程序支付所需工具类微信小程序支付所需工具类微信小程序支付所需工具类微信小...
1、Utils工具类有String工具类、XmlNode节点工具类、BeanFactory相关、Common工具类、Cookie工具类、Date工具类、Http工具类、JDBC工具类、日志Log工具类、Servlet相关等。2、工具类省了重复造轮子的工作,可以直接...
在Android应用开发中,工具类(Utils)是程序员经常使用的辅助模块,它们包含了一系列静态方法,用于处理各种常见的任务,从而提高代码的复用性和可维护性。本资源"Android快速开发系列 10个常用工具类 程序源码...
java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java ...
java 字典 工具类 java 字典 工具类java 字典 工具类 java 字典 工具类java 字典 工具类 java 字典 工具类java 字典 工具类 java 字典 工具类java 字典 工具类 java 字典 工具类java 字典 工具类 java 字典 工具类...