`

HttpClient笔记2

 
阅读更多
	private void test(){
		
		//http://127.0.0.1:8080/osfcid/person/1002140?userLoginId=wlt_login&password=789123
		//smc_rest+"component/"+layoutId + "/"+gridId,"GET"
		String uri = "http://127.0.0.1:8080/osfcid/person/1002140";
		Map paramMap = new HashMap();
		paramMap.put("userLoginId", "wlt_login");
		paramMap.put("password", "王乐天测试");
		String result = RestManager.httpRest(uri, paramMap, "PUT");
		
	}

 

package org.jasig.cas.a4.tools;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.URI;
import org.apache.commons.httpclient.methods.DeleteMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.PutMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;


public class RestManager 
{
	private static int _timeout=7200000;
	private static final String CONTENT_CHARSET = "UTF-8";
	private static Log log = LogFactory.getLog(RestManager.class);

	public static String get(String uri) throws IOException{
		String data = "";

		HttpClient httpClient= new HttpClient();
		httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, CONTENT_CHARSET); 
		httpClient.setConnectionTimeout(_timeout);
		httpClient.setTimeout(_timeout);
		
		GetMethod getMethod = null;
		try{
			getMethod= new GetMethod();
			getMethod.setURI(new URI(uri,false));
			getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
			getMethod.setRequestHeader("Connection", "close"); 
			int statusCode = httpClient.executeMethod(getMethod);
			if (statusCode != HttpStatus.SC_OK) {
				  log.error("Method failed: " + getMethod.getStatusLine());
				  return data;
			}
			
			byte[] dataResponseBody = getMethod.getResponseBody(); 
			data= new String(dataResponseBody,"utf-8");
		}catch(HttpException e){
			log.error("Please check your provided http address!");
		}catch(IOException e){
			log.error(e.getMessage());
		}catch(Exception e){
			log.error(e.getMessage());
		}finally{
			if(getMethod!=null) getMethod.releaseConnection();
		}
		
		return data;
	}
	
	public static String post(String uri, Map paramMap) throws IOException{
		String data= "";
		HttpClient httpClient= new HttpClient();
		httpClient.setConnectionTimeout(_timeout);
		httpClient.setTimeout(_timeout);
		
		PostMethod method = null;
		try{
			method= new PostMethod();
			method.setURI(new URI(uri, false));
			//param
			if(paramMap!=null){
				java.util.Iterator keys= paramMap.keySet().iterator();
				while(keys.hasNext()){
					String key= (String)keys.next();
					method.setParameter(key, (String)paramMap.get(key));
				}
			}
			int statusCode = httpClient.executeMethod(method);
			if (statusCode != HttpStatus.SC_OK) {
				  log.error("Method failed: " + method.getStatusLine());
			}
			data= new String(method.getResponseBody(),"utf-8");
		}catch(HttpException e){
			log.error("Please check your provided http address!");
		}catch(IOException e){
			log.error(e.getMessage());
		}catch(Exception e){
			log.error(e.getMessage());
		}finally{
			if(method!=null) method.releaseConnection();
		}
		return data;
	}
	
	public static String put(String uri, Map paramMap) throws IOException{
		String data= "";
		HttpClient httpClient= new HttpClient();
		
		PutMethod method = null;
		try{
			method= new PutMethod();
			method.setURI(new URI(uri, false));
			//param
			if(paramMap!=null){
				NameValuePair[] NameValuePairs = new NameValuePair[paramMap.size()] ;
				java.util.Iterator keys= paramMap.keySet().iterator();
				int i = 0;
				while(keys.hasNext()){
					String key= (String)keys.next();
					 NameValuePair param = new NameValuePair(key, (String)paramMap.get(key));
					 NameValuePairs[i] = param;
					 i++;
				}
				method.setQueryString(NameValuePairs);
			}

			int statusCode = httpClient.executeMethod(method);
			if (statusCode != HttpStatus.SC_OK) {
				  log.error("Method failed: " + method.getStatusLine());
			}
			data= new String(method.getResponseBody(),"utf-8");
		}catch(HttpException e){
			log.error("Please check your provided http address!");
		}catch(IOException e){
			log.error(e.getMessage());
		}catch(Exception e){
			log.error(e.getMessage());
		}finally{
			if(method!=null) method.releaseConnection();
		}
		return data;
	}
	
	public static String delete(String uri) throws IOException{
		String data= "";
		HttpClient httpClient= new HttpClient();
		httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, CONTENT_CHARSET); 
		httpClient.setConnectionTimeout(_timeout);
		httpClient.setTimeout(_timeout);
		
		DeleteMethod method = null;
		try{
			method= new DeleteMethod();
			method.setURI(new URI(uri,false));
			method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
			int statusCode = httpClient.executeMethod(method);
			if (statusCode != HttpStatus.SC_OK) {
				  log.error("Method failed: " + method.getStatusLine());
			}
			data= new String(method.getResponseBody(),"utf-8");
		}catch(HttpException e){
			log.error("Please check your provided http address!");
		}catch(IOException e){
			log.error(e.getMessage());
		}catch(Exception e){
			log.error(e.getMessage());
		}finally{
			if(method!=null) method.releaseConnection();
		}
		return data;
	}

	public static String httpRest(String uri, String method) throws IOException
	{
		return httpRest(uri, null, method);
	}
	
	public static String httpRest(String uri, Map paramMap, String method) throws IOException
	{
		String threadName = Thread.currentThread().getName();
		log.info("<"+threadName+">"+method+": "+uri);
		
		String result= null;
		if(method.toUpperCase().equals("PUT"))
			result = put(uri, paramMap);
		if(method.toUpperCase().equals("GET"))
			result = get(uri);
		if(method.toUpperCase().equals("POST"))
			result = post(uri, paramMap);
		if(method.toUpperCase().equals("DELETE"))
			result = delete(uri);
		if(result==null)result = "";
		
		if(result.length()<10000){
			log.info("<"+threadName+">"+"result: "+result);
		}else{
			log.info("<"+threadName+">"+"result:Large data... ");
		}
		
		return result;
	}
	
	private static String doRest(String uri, String method) throws IOException
	{
		StringBuffer data= new StringBuffer();
		
		if(uri==null || "".equals(uri))
			return "";
		
		URL url = new URL(uri);
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();
		conn.setDoOutput(true);
		conn.setDoOutput(true);
		
		conn.setRequestMethod(method);
		BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));   
		String input= null;
		while((input = reader.readLine()) != null) {
			data.append(input);
	    }
		conn.disconnect();
		return data.toString();
	} 
	
}

 

分享到:
评论

相关推荐

    HttpClient学习笔记

    HttpClient学习笔记 模拟测试浏览器表单提交

    httpclient4.5笔记,常用知识点,从零开始也能看懂(持续更新)

    最近一直在使用httpclient4.5进行网页爬取,平时有记笔记习惯,里面记录了很多自己的理解,从初级到高级。大部分都是白话描述好理解,包含实例代码都是亲测可行。 如有什么地方没有记录到的,欢迎评论我会持续更新..

    HttpClient 学习笔记

    是一个全面的HttpClient学习笔记,对想了解HttpClient 技术,和全面应用HttpClient技术,有关全面的说明,里面包含了代码

    android 学习笔记6-HttpClient 多线程下载 断点续传 进度条 源码关联

    2、使用HttpClient发送POST请求:和之前的GET类似 3、使用异步HttpClient发送请求,可以在github上找一些别人已经写好的代码,封装度比较高,直接拿来用。 4、多线程下载:使用RandomAccessFile输出流写 5、多线程...

    淘淘商城笔记

    淘淘商城笔记.docx

    C#HTTPclient 实例应用

    学习C#必经之路,入门级知识总结,笔记本知识概况,走一步再走一步

    Android代码-AndroidNote Android笔记

    Android学习笔记 &gt; 十年生死两茫茫,不思量,自难忘,华年短暂,陈辞岁月悠悠伤, &gt; 满腔热血已芜荒,展未来,后生强,战战兢兢,如履薄冰心彷徨, &gt; 青丝化雪、鬓角成霜,已是英雄迟暮,人生怎慷慨激昂? 目录 ...

    Android开发之HttpClient异步请求数据的方法详解【附demo源码下载】

    前面一篇Android开发笔记之:AsyncTask的应用较为详细的讲述了Asynctask的原理与应用,这里来结合使用一下HttpClient与Asynctask~ 代码编写如下: 服务器代码我就不写出来了,就是一个用户名和密码~ 1.写一个类...

    android移动互联笔记

    涉及android中移动互联的两种实现方式HttpUrlConnection以及HttpClient 最基础的Socket通信 如何解决乱码问题

    Java 知识汇总(资源,工具,笔记,源码,文章,文档分类整理).zip

    Http客户端接口测试,Okhttp的使用,HttpClient的使用,HttpUrlConnection的使用;集合的常见用法; 线程的基本知识;反射的基本知识;注解的基本知识;异常用法;io的基本用法;常用的json解析框架的使用; - **Java进阶** ...

    黑马安卓基础day4 (总共day8)

    有文档,用到的工具软件,jar包,笔记,图解,源码+注释。视频太大放不上来。以下为今日教学内容,仅供参考。 36_网络图片查看器.avi 37_网页html的查看器.avi 38_视频客户端综合案例&获取数据.avi 39_视频客户端...

    Silverlight2 跨域调用Web服务的方法

    调用Web服务是一种常见的功能,在Silverlight2中也是可以调用别的网站的Web服务的。由于跨域访问存在安全漏洞,所以,默认情况下,Silverlight2不允许跨域进行服务的调用。要实现跨域调用Web服务,需要在被调用的Web...

    尚硅谷Java11新特性教程.txt

    尚硅谷Java11新特性教程(包含笔记、代码、视频)。新的局部变量的语法、更方便的调试运行程序的方式jshell及直接运行源代码、令人瞩目的ZGC, JFR、全新HttpClient API、兼容Unicode10的新的字符串API等。

    xUtils3.0框架学习笔记分享

    2、拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响。 3、图片绑定支持gif(受系统兼容性影响, 部分gif文件只能静态显示), webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转等。 4、数据库api简化提高性能, ...

    安卓第七天笔记--网络编程

    同时支持JDK提供的URL,URLConnection等网络通信API.Andoirdgip内置了Apache的HttpClient,这样可以非常方便的发送HTTP请求,并获取HTTP响应.服务器布局文件子线程Activity布局Activity添加网络权限使用URLConnection...

    Eclipse开发分布式商城系统+完整视频代码及文档

    ├─补充2:Redis3.0新特性、主从复制、集群视频教程 │ │ 打开必读.txt │ │ │ ├─相关资料 │ │ redis-3.0.1.tar.gz │ │ redis-3.0.2.tar.gz │ │ redis-3.2.1.gem │ │ Redis集群.docx │ │ ...

    learning-tornado-src:Tornado框架源码学习笔记

    简介 Tornado是一个Python web框架,也是异步网络库,通过使用非双向IO,它可以轻松处理C10K问题,对于长替换,WebSocket等长链接的开发,...├── curl_httpclient.py ├── escape.py ├── gen.py ├── http1c

Global site tag (gtag.js) - Google Analytics