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; } }
相关推荐
在这个“hibernate的大部分的工具类”压缩包中,我们很可能会找到一系列帮助简化Hibernate操作的实用工具类。这些工具类通常包括对数据操作的辅助方法、空值检查、分页处理以及HQL查询的通用分页功能。 首先,让...
在C++编程中,工具类是非常重要的一部分,它们提供了一系列通用功能,可以帮助开发者更高效地进行项目开发。本文将深入探讨标题"**C++工具类-常用工具类源码**"所涵盖的知识点,主要围绕文件处理、编码处理、字符串...
使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:http://www.javacs.cn/bbs/thread-382-1-1.html 感谢支持 [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中...
1、Utils工具类有String工具类、XmlNode节点工具类、BeanFactory相关、Common工具类、Cookie工具类、Date工具类、Http工具类、JDBC工具类、日志Log工具类、Servlet相关等。2、工具类省了重复造轮子的工作,可以直接...
在Android应用开发中,工具类(Utils)是程序员经常使用的辅助模块,它们包含了一系列静态方法,用于处理各种常见的任务,从而提高代码的复用性和可维护性。本资源"Android快速开发系列 10个常用工具类 程序源码...
该工具类是Java编写下载即可使用,该工具类中有生成各种长度的订单号,有英文数字混合的,有数字的
在IT行业中,Excel导出工具类是经常被用于数据处理和报表生成的模块。这个工具类通常是为了简化从应用程序中批量导出数据到Excel文件的过程,使得开发者可以更高效地处理大量的结构化信息。以下是对"Excel导出工具类...
- Android开发中常见的工具类包括:字符串工具类(处理字符串格式化、拼接等)、日期时间工具类(格式化日期和时间)、网络工具类(检查网络状态、发起网络请求)、图片处理工具类(裁剪、压缩、加载图片)等。...
在Java开发中,工具类是程序员经常会用到的代码模块,它们封装了各种常见的操作,提高了代码的可重用性和可维护性。以下是对标题和描述中提到的几个常用工具类的详细说明: 1. **DateUtils**: `java.util.Date` 和 ...
C#常用工具类代码集合Util第二版本(自己工作总结),包括常用工具类,扩展方法工具类,百度地图C#工具类,Echart工具类,Office工具类,Autofac工具类,Web开发常用工具类,Winform开发常用工具类,是自己工作十年...
为了解决这个问题,开发了这个Java实体类字段生成工具类。 2、该工具类可以将数据库表列字段转化为对应的Java实体类字段。生成的实体类字段格式清晰易读,且符合Java命名规范。通过使用该工具类,可以大大提高开发...
这是自己开发的一个参数校验的工具类,可用于对实例的属性进行非空校验。包括全部校验和任一校验两种校验方式。 举例:CheckParamsUtils.checkParamsAll(requestBean, "name", "age","gender");
在Java编程领域,工具类(Utility Class)是包含各种实用函数的静态类,它们提供了一种简化编程任务的方式。以下是对标题和描述中提到的一些常用Java工具类的详细解释: 1. **数据库池工具类**:数据库连接池是管理...
现在的数据层的开发,大多会使用如MyBatis或JPA之类的开发工具。这些开发工具给我们的开发过程中带来了极大的便利。 但是在一些极端的场景下往往原生的jdbc方式操作数据库更灵活,性能更高。由于部分场景下MyBatis或...
现在很多项目单机版已经不满足了,分布式变得越受欢迎,同时也带来很多问题,分布式锁也变得没那么容易实现,分享一个redis分布式锁工具类,里面的加锁采用lua脚本(脚本比较简单,采用java代码实现,无须外部调用...
这是一个工具类用于判断map中的键值对是否为空!普通判断若遇上空会报空指针异常!
android线程池管理工具类,用来管理线程的一些操作,避免重复new线程造成的资源浪费
文件下载的工具类java代码,设置编码格式,避免下载中文乱码
字符串工具类,格式字符串、随机数生成、ip区间判断!
这是一个Java的工具类,进行加密操作的时候调用该类的方法就可以,工具类里面写了一个main,拿啦直接用就行。