`

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();
	} 
	
}

 

分享到:
评论

相关推荐

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

    HttpClient 4.5 支持 HTTP/2 协议,但需要相应的服务器支持,可以通过 `HttpAsyncClientBuilder` 构建支持 HTTP/2 的异步客户端。 15. **异步编程**: HttpClient 提供了异步接口,使用 `HttpAsyncClient` 可以...

    HttpClient学习笔记

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

    HttpClient学习笔记参考.pdf

    2. **HTTPS支持**:HttpClient 提供了加密操作,能够处理HTTPS请求,确保数据传输的安全性。 3. **代理支持**:HttpClient 能够透明地通过HTTP代理和SOCKS代理(版本4和5)建立连接,甚至支持通过HTTP代理进行HTTPS...

    httpclient4中文API和使用

    `httpClient笔记.docx`可能是用户或教程作者整理的关于使用HttpClient的笔记或实战案例,可能包括一些常见问题的解决方案,比如处理重定向、处理cookies、上传下载文件、使用HTTPS等。 学习HttpClient时,除了API...

    HttpClient 学习笔记

    2. 再次登录获取 HttpClient 源码。 3. 在 Commons Logging 目录中运行 Ant 构建脚本,生成 JAR 文件并复制到 HttpClient 的 lib 目录。 4. 在 HttpClient 目录中再次运行 Ant 构建脚本,生成 HttpClient 的 JAR ...

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

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

    淘淘商城笔记

    2. **数据库设计**:MySQL作为关系型数据库,常用于存储商品信息、订单数据等。可能使用了MyBatis或JPA进行数据访问操作,它们能简化SQL操作并提供对象关系映射。 3. **分布式缓存**:为了提高读取效率,可能会使用...

    http client

    HttpClient是Apache开源组织提供的一个Java库,用于执行HTTP请求。...通过阅读官方文档和相关的学习笔记(如HttpClient学习笔记.doc),可以进一步深化对HttpClient的理解,掌握其高级特性和最佳实践。

    有道云笔记内容下载java版,有道云笔记备份到本地

    标题 "有道云笔记内容下载java版,有道云...它利用了Java的网络请求库(如HttpURLConnection或Apache HttpClient)、JSON解析库(如Jackson或Gson)以及文件操作功能,为用户提供了便捷的数据备份和本地化管理方式。

    Java 学习笔记Java学习笔记

    2. 类与对象:面向对象编程(OOP)是Java的核心。类是对象的模板,包含了数据(字段)和行为(方法)。对象是类的实例,通过构造函数创建。封装、继承和多态是OOP的三大特性,Java通过访问修饰符(public、private、...

    Android代码-AndroidNote Android笔记

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

    Java学习笔记(javase)

    Apache是Java生态系统中的一个重要组成部分,它不仅是一个开源的Web服务器,也是许多Java库和框架(如Apache HttpClient、Apache Tomcat等)的开发者。这些库和框架简化了开发过程,提供了诸如HTTP通信、应用服务器...

    学习笔记 十分有用 java

    你还能了解到URL、URLConnection以及HTTPClient的相关知识,这些都是构建网络应用的关键。 此外,笔记中还包含了对Tomcat服务器的介绍和使用。Tomcat是一款轻量级的Java Web应用服务器,是初学者部署和运行Servlet...

    jt07日常笔记

    笔记不仅涵盖了项目的具体实施细节,还涉及到了多种技术手段的运用,如JSONP、HttpClient等,这些技术在实际开发过程中起到了关键作用。 #### 二、跨域访问解决方案:JSONP 跨域问题一直是前端开发中的一个重要...

    B站java狂神说笔记

    Apache是常见的开源软件项目,其产品如Tomcat(Java EE应用服务器)、HttpClient(网络通信库)、Log4j(日志框架)等在Java开发中广泛应用。笔记可能会介绍如何集成和使用这些工具。 总结,【Java狂神说笔记】是一...

    jt08工作笔记

    ### jt08工作笔记知识点梳理 #### 商品详情页与前后端交互 - **商品详情页设计**:在项目04中,商品详情页是前端与后端交互的关键环节。前端负责展示商品信息,而后端则负责组织并提供这些信息。 - **前后端交互...

    Mono for Android和MonoDroid学习笔记全套

    2. **基本概念**:学习笔记会解释Android应用的基本结构,如Activities、Services、Broadcast Receivers和Content Providers,以及如何在C#中实现这些概念。 3. **UI设计**:笔记将介绍使用XML布局文件和代码动态...

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

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

Global site tag (gtag.js) - Google Analytics