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 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 ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ID生成器工具类 java ID生成器工具类java ...
`RabbitmqUtil` 是一个专门为Java开发者设计的工具类,简化了与RabbitMQ交互的复杂过程,使得开发者能够更快速、更方便地发送和接收消息。 首先,我们来详细了解一下`RabbitmqUtil`工具类的主要功能: 1. **连接...
在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。这些工具类通常包含静态方法,不涉及实例化,直接通过类名调用,降低了代码冗余,提高了代码复用...
在C++编程中,工具类是非常重要的一部分,它们提供了一系列通用功能,可以帮助开发者更高效地进行项目开发。本文将深入探讨标题"**C++工具类-常用工具类源码**"所涵盖的知识点,主要围绕文件处理、编码处理、字符串...
java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java ...
jedis的工具类,java代码写的,非常全面,jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类...
在Android应用开发中,工具类(Utils)是程序员经常使用的辅助模块,它们包含了一系列静态方法,用于处理各种常见的任务,从而提高代码的复用性和可维护性。本资源"Android快速开发系列 10个常用工具类 程序源码...
在Java开发中,工具类是程序员经常会用到的代码模块,它们封装了各种常见的操作,提高了代码的可重用性和可维护性。以下是对标题和描述中提到的几个常用工具类的详细说明: 1. **DateUtils**: `java.util.Date` 和 ...
C# Util中的Json工具类通常提供了序列化和反序列化JSON对象的方法,如将C#对象转换为JSON字符串,或者将JSON字符串解析为C#对象,这在处理API请求或保存配置文件时非常有用。 2. **Net**: 这部分可能包含网络通信...
该工具类是Java编写下载即可使用,该工具类中有生成各种长度的订单号,有英文数字混合的,有数字的
C#常用工具类代码集合Util第二版本(自己工作总结),包括常用工具类,扩展方法工具类,百度地图C#工具类,Echart工具类,Office工具类,Autofac工具类,Web开发常用工具类,Winform开发常用工具类,是自己工作十年...
通用restful返回工具类
`MapUtils`工具类就是为了解决这样的问题而设计的,它简化了`Map`对象和实体类之间的转换过程。本篇文章将深入探讨`MapUtils`工具类的使用及其在Java开发中的重要性。 首先,让我们了解一下实体类。在Java中,实体...
本文将详细探讨如何使用RestSharp以及如何通过创建一个名为`RestSharpUtil`的工具类来进一步封装它,以提高代码的复用性和易用性。 首先,我们来看`RestSharpUtil`的核心概念。这个工具类的目的是减少对`Rest...
在Java编程领域,工具类(Utility Class)是程序员日常工作中不可或缺的部分。这些工具类提供了许多通用功能,可以简化代码编写,提高开发效率。标题提到的"50个左右的JAVA工具类,相对比较全"表明这是一个集合了大量...
java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...
java 进制转换工具类 java 进制转换工具类java 进制转换工具类 java 进制转换工具类java 进制转换工具类 java 进制转换工具类
android高德地图封装工具类地图定位,绘制路径等等android高德地图封装工具类地图定位,绘制路径等等android高德地图封装工具类地图定位,绘制路径等等android高德地图封装工具类地图定位,绘制路径等等android高德...