`
奎河少年
  • 浏览: 23538 次
  • 性别: 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是哪个 版本的啊

相关推荐

    HttpConnectionTool工具类

    通过HttpConnection请求跨域接口 public String invokeServiceMethod(String url,Map,String&gt; params,Map, String&gt; header) throws Exception{ HttpClient httpclient=new DefaultHttpClient();...

    【强2】30个java工具类

    使用java工具类可有效的提高开发效率! 没有CSDN积分的朋友到这里源头下载:http://www.javacs.cn/bbs/thread-382-1-1.html 感谢支持 [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中...

    30个java工具类

    [工具类] CookieCounter .java.txt [工具类] 验证码img .jsp.txt [工具类] Java中计算任意两个日期之间的工作天数 .java.txt [工具类] java抓取网页 .java.txt [工具类] MD5 .java.txt [工具类] MD5强化版 .java.txt...

    Rabbitmq工具类,java工具类RabbitmqUtil

    1、java工具类RabbitmqUtil是本人封装好的直接使用 2、常用的方法都在里面 3、改一下初始化配置参数就行

    jedisUtil工具类java

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

    Java实现的Https请求工具类

    Java实现的Https请求工具类。 https的java工具类 Https

    java常用的工具类整理28个

    java常用的工具类整理28个java常用的工具类整理28个java常用的工具类整理28个

    java反射工具类 ReflectionUtils

    该工具类下载后拷贝到你要用的包,只需该包名即可

    微信公众号开发常用工具类源码,包含菜单事件,网页授权token获取,openid获取,文件上传工具类源码

    本源码包含公众号菜单初始化开发,菜单事件开发,普通token和网页授权token开发工具类,js_ticket获取和缓存,获取openid开发,公众号网络请求封装,xml格式转换工具类,文件上传工具类,关注事件/取消关注事件开发...

    java各种工具类-非常齐全

    java各种工具类:包括日期工具类、字符串工具类、文件工具类、xml读写工具类、json工具类、http访问工具类、压缩包工具类等等。非常齐全

    MQ工具类java

    包含了IBM的MQ初始化,发送,接收的工具类,方便极了,可直接放入到项目中。

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

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

    java常用工具类打包下载

    J2EE常用工具类汇总 J2EE常用工具类—Value Object工具类 J2EE常用工具类—Json工具 J2EE常用工具类—Jdbc操作 J2EE常用工具类—Hibernate操作 J2EE常用工具类—Cookie操作 J2EE常用工具类—数组操作 J2EE...

    HTTPClient工具类,完整

    HTTPClient工具类,完整,HTTPClient工具类,完整,HTTPClient工具类,完整HTTPClient工具类,完整,HTTPClient工具类,完整

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

    c++常用的工具类源码 包括:文件处理,编码处理,字符串处理,网络爬虫,网页数据的抓取 ,可根据数组规则抓取指定网页的内容(有一个例子)等等

    Java生成订单号的工具类

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

    RabbitMQ工具类及测试类(完整版)

    RabbitMQClientUtil是MQ的测试工具类,他封装了fanout、direct、topic三种exchange模式,并包括发送数据和接收数据。 Test1、Test2是测试类 使用maven管理,在pom.xml文件中引入如下代码: &lt;!-- Rabbitmq工具包...

    HttpClientHelper 工具类

    C# HttpClientHelper(HttpClient工具类) 包含 同步/异步请求 返回 string/泛型类型/Xml 及一个单例模式 的 SingleHelper 适合做爬虫

    HTTP请求客户端工具类RestTemplateUtil.java

    org.springframework.web.client.AsyncRestTemplate org.springframework.web.client.RestTemplate HTTP请求工具类,基于以上两个Rest请求工具模板完成封装HTTP请求,包括同步和异步请求的实现。

    Java poi导入导出EXCEL工具类(兼容各版本)

    概述:Java poi导入导出EXCEL工具类(兼容各版本) 一、功能说明 允许同时导入或导出多个sheet,同一sheet可同时存在多个数据块,按数据块划分处理数据。 二、配置文件示例及详细说明 1、导入xml配置示例如下(见...

Global site tag (gtag.js) - Google Analytics