`
奎河少年
  • 浏览: 25105 次
  • 性别: 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 转义和...

    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 ...

    Rabbitmq工具类,java工具类RabbitmqUtil

    `RabbitmqUtil` 是一个专门为Java开发者设计的工具类,简化了与RabbitMQ交互的复杂过程,使得开发者能够更快速、更方便地发送和接收消息。 首先,我们来详细了解一下`RabbitmqUtil`工具类的主要功能: 1. **连接...

    自己整理的C#常用工具类

    在C#编程中,工具类(Utility Class)是一种常见的设计模式,它封装了一些常用的功能,以便在项目中方便地重复使用。这些工具类通常包含静态方法,不涉及实例化,直接通过类名调用,降低了代码冗余,提高了代码复用...

    C++工具类-常用工具类源码

    在C++编程中,工具类是非常重要的一部分,它们提供了一系列通用功能,可以帮助开发者更高效地进行项目开发。本文将深入探讨标题"**C++工具类-常用工具类源码**"所涵盖的知识点,主要围绕文件处理、编码处理、字符串...

    java 验证码工具类 java 验证码工具类 java 验证码工具类

    java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java 验证码工具类java 验证码工具类 java 验证码工具类 java ...

    jedisUtil工具类java

    jedis的工具类,java代码写的,非常全面,jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类...

    Android快速开发系列 10个常用工具类 程序源码

    在Android应用开发中,工具类(Utils)是程序员经常使用的辅助模块,它们包含了一系列静态方法,用于处理各种常见的任务,从而提高代码的复用性和可维护性。本资源"Android快速开发系列 10个常用工具类 程序源码...

    java开发,30个常用工具类总结,全部来自项目实践中用到的工具类

    在Java开发中,工具类是程序员经常会用到的代码模块,它们封装了各种常见的操作,提高了代码的可重用性和可维护性。以下是对标题和描述中提到的几个常用工具类的详细说明: 1. **DateUtils**: `java.util.Date` 和 ...

    C# Util 实用工具类

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

    Java生成订单号的工具类

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

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

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

    Java通用restful返回工具类

    通用restful返回工具类

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

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

    C# RestSharpUtil RestSharp工具类

    本文将详细探讨如何使用RestSharp以及如何通过创建一个名为`RestSharpUtil`的工具类来进一步封装它,以提高代码的复用性和易用性。 首先,我们来看`RestSharpUtil`的核心概念。这个工具类的目的是减少对`Rest...

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

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

    java *spring工具类 方便在非spring管理环境中获取bean

    java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...

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

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

    android高德地图封装工具类

    android高德地图封装工具类地图定位,绘制路径等等android高德地图封装工具类地图定位,绘制路径等等android高德地图封装工具类地图定位,绘制路径等等android高德地图封装工具类地图定位,绘制路径等等android高德...

Global site tag (gtag.js) - Google Analytics