`
奎河少年
  • 浏览: 24899 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HttpTool工具类

 
阅读更多
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;
	}
}

 

分享到:
评论
2 楼 奎河少年 2013-12-17  
MauerSu 写道
httpClient是哪个 版本的啊

4.1.2
1 楼 MauerSu 2013-12-05  
httpClient是哪个 版本的啊

相关推荐

    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 转义和...

    jaava和jsp工具类

    [工具类] 获得汉字拼音首字母的java工具类 .java [工具类] 获取绝对路径 .java [工具类] 记录log日志文件的工具类 .java [工具类] 连接数据库的工具类 .java [工具类] 使用Java程序来实现HTTP文件的队列下载 ....

    Java开发工具类

    Class类工具 \Cookie工具类 \excel读取 工具类\Java如何生成验证码图片和点击刷新验证码\java获取当前月第一天和最后一天,上个月第一天和最后一天\java实现ftp文件的上传与下载\Json工具类 - JsonUtils.java\JS...

    java 媒体类型工具类java 媒体类型工具类java 媒体类型工具类

    java 媒体类型工具类java 媒体类型工具类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 ID生成器工具类 java ID生成器工具类java ...

    C# Util 实用工具类

    C# Util中的Json工具类通常提供了序列化和反序列化JSON对象的方法,如将C#对象转换为JSON字符串,或者将JSON字符串解析为C#对象,这在处理API请求或保存配置文件时非常有用。 2. **Net**: 这部分可能包含网络通信...

    HttpUtils 发送http请求工具类(实例讲解)

    该工具类提供了多种方法来发送 GET、POST、PUT、DELETE 等请求,并且支持设置超时时间、代理服务器、证书验证等功能。 关键代码分析 在 HttpUtils 工具类中,有一些关键的代码需要特别注意: 1. `init()` 方法:...

    Java生成订单号的工具类

    该工具类是Java编写下载即可使用,该工具类中有生成各种长度的订单号,有英文数字混合的,有数字的

    C#常用工具类代码集合Util第二版本(自己工作总结)

    C#常用工具类代码集合Util第二版本(自己工作总结),包括常用工具类,扩展方法工具类,百度地图C#工具类,Echart工具类,Office工具类,Autofac工具类,Web开发常用工具类,Winform开发常用工具类,是自己工作十年...

    java Excel相关处理 工具类 java Excel相关处理 工具类

    java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 工具类java Excel相关处理 工具类 java Excel相关处理 ...

    MapUtils工具类,轻松转换map数据与实体类

    `MapUtils`工具类就是为了解决这样的问题而设计的,它简化了`Map`对象和实体类之间的转换过程。本篇文章将深入探讨`MapUtils`工具类的使用及其在Java开发中的重要性。 首先,让我们了解一下实体类。在Java中,实体...

    50个左右的JAVA工具类,相对比较全

    在Java编程领域,工具类(Utility Class)是程序员日常工作中不可或缺的部分。这些工具类提供了许多通用功能,可以简化代码编写,提高开发效率。标题提到的"50个左右的JAVA工具类,相对比较全"表明这是一个集合了大量...

    java Serivlet 工具类

    java Serivlet 工具类 java Serivlet 工具类java Serivlet 工具类 java Serivlet 工具类java Serivlet 工具类 java Serivlet 工具类java Serivlet 工具类 java Serivlet 工具类java Serivlet 工具类 java Serivlet ...

    java 进制转换工具类 java 进制转换工具类

    java 进制转换工具类 java 进制转换工具类java 进制转换工具类 java 进制转换工具类java 进制转换工具类 java 进制转换工具类

    java开发工具类(14个)

    在Java开发过程中,工具类(Util Classes)是程序员经常使用的一种设计模式,它们提供了一些静态方法,方便在多个类或模块之间复用。本压缩包包含14个针对Java和Android开发的实用工具类,涵盖了图片上传、HTTP协议...

    MinIO通用上传工具类

    MinIO通用上传工具类

    android开发各种工具类

    在Android开发过程中,工具类(Utils Class)是开发者经常使用的代码模块,它们包含了各种通用功能,可以帮助我们提高开发效率,减少重复工作。"android开发各种工具类"这个资源集合了作者在开发实践中积累的一些...

    HttpClientHelper 工具类

    HttpClientHelper 是一个C#编写的工具类,主要目的是简化HTTP客户端操作,提供同步和异步的请求方法,返回数据格式多样,包括字符串、泛型类型和XML。在爬虫开发中,这样的工具类非常实用,因为爬虫经常需要与各种...

    30个java工具类

    Java工具类是编程中不可或缺的部分,它们提供了许多实用的功能,帮助开发者提高代码的效率和可维护性。在提供的"30个java工具类"压缩包中,我们可以看到一系列常见的工具类,涵盖了字符串处理、时间日期操作、网络...

Global site tag (gtag.js) - Google Analytics