`

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

 

分享到:
评论

相关推荐

    (源码)基于JavaWeb的饮品销售管理系统.zip

    # 基于Java Web的饮品销售管理系统 ## 项目简介 本项目是一个基于Java Web的饮品销售管理系统,主要用于学校实训课程的作业。系统涵盖了从用户管理、商品管理、订单管理到购物车管理的全套功能,旨在提供一个完整的在线饮品销售解决方案。 ## 项目的主要特性和功能 ### 用户管理 用户注册与登录支持用户注册新账号和登录系统。 用户信息管理包括用户信息的查询、修改和删除。 用户类型管理区分不同类型的用户(如管理员、普通用户)。 ### 商品管理 商品CRUD操作支持商品的添加、修改、删除和查询。 商品分类管理支持多级商品分类的查询和管理。 商品分页查询支持按页查询商品信息,提高查询效率。 ### 订单管理 订单CRUD操作支持订单的创建、修改、删除和查询。 订单明细管理支持订单明细的添加和管理。 订单状态管理支持订单状态的更新和查询。 ### 购物车管理

    BitmapFunc.rar

    BitmapFunc

    c++课程设计-产品入库管理操作系统.zip

    c++课程设计-产品入库管理操作系统

    c语言火车票订票管理源码.rar

    c语言火车票订票管理源码

    仿新浪微博下拉刷新继承FrameLayout.zip

    仿新浪微博下拉刷新继承FrameLayout

    浮动搜索框(SearchManager).zip

    浮动搜索框(SearchManager)

    (源码)基于ParticleTracker框架的传感器浮标系统.zip

    # 基于Particle Tracker框架的传感器浮标系统 ## 项目简介 本项目是一个基于Particle Tracker框架的传感器浮标系统,旨在通过集成多种传感器和通信模块,实现对环境参数的实时监测和数据传输。该系统主要应用于海洋监测、环境监测等领域,通过浮标上的传感器收集温度、湿度、位置等数据,并通过Particle Tracker平台进行数据处理和传输。 ## 项目的主要特性和功能 1. 传感器集成 集成BMI160传感器,用于检测三轴加速度和三轴陀螺仪数据。 集成Grove温度和湿度传感器,用于实时监测环境温度和湿度。 集成NTC热敏电阻,用于精确测量温度变化。 2. 位置追踪 使用UBLOX GPS模块,提供高精度的位置追踪功能。 支持地理围栏功能,能够检测浮标是否进入或离开预设区域。 3. 数据通信 通过CAN总线实现传感器数据的高效传输。

    python《树莓派使用OpenCV库实现人脸识别》+项目源码+文档说明

    <项目介绍> - 树莓派使用OpenCV库实现人脸识别 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

    毕业设计&课设_基于 UserCF 与 CB 后融合的网络电视节目推荐系统(含多种技术,有详细实现步骤及数据处理).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。

    PHP基于Linux的远程管理系统服务器端的实现(源代码+论文).rar

    PHP基于Linux的远程管理系统服务器端的实现(源代码+论文)

    c语言课程设计-产品管理系统.zip

    c语言课程设计-产品管理系统

    人工智能-大模型-一个智能问答系统,能够自动将用户的自然语言问题转换成 SQL 查询,并以可视化形式展示结果

    一个智能问答系统,能够自动将用户的自然语言问题转换成 SQL 查询,并以可视化形式展示结果 用户使用自然语言查询数据。基于 Python、MySQL 和 Milvus 构建,将用户的问题转换为 SQL 查询,安全地执行,并产生符合echarts的数据可视化呈现结果。

    C#医生健康科普问答咨询平台(前端+后台)源码带手机端数据库 SQL2008源码类型 WebForm

    医生健康科普问答咨询平台(前端+后台)源码带手机端 医生健康科普问答咨询平台,主要提供专业、及时的健康咨询服务,问题涵盖面广,包括内科、外科、 妇科、儿科、男科、中医、五官、等科室。可以通过视频,音频,文章,问答等方式进行科普。 前台首页:1、包含幻灯片 2、权威医生 3、医学视频 4、语音科普 5、科普文章。 6、健康问答 7、个人中心。 网站管理后台:各模块可以灵活管理和配置。 1、信息管理: (1)会员系统。(2)轮播系统。(3)权威医生。(4)医学视频。(5)语音科普。 (6)科普文章。(7)健康问答。(8)友情链接。(9)帮助中心。(10)栏目板块。 2、用户管理:(1)管理员管理。(2)部门管理。(数据权限)(3)用户组管理。(菜单权限) 3、页面管理:(1)高级标签(SQL)。(2)自定义静态标签。(3)静态页面生成。 4、系统管理:(1)网站参数管理。 (2)模型管理。(可以生成板块,对应字段后台展示不同控件,并有相应维护功能,可以根据模型 及模型下栏目创建标签,将标签放入html模板中,生

    (源码)基于Python和OpenMVCamera的图像处理与通信系统.zip

    # 基于Python和OpenMV Camera的图像处理与通信系统 ## 项目简介 本项目基于OpenMV Camera,结合MicroPython,实现了图像捕获、处理与通信功能。通过UART和SPI协议,实现了与Arduino和ESP32等设备的通信,实现了图像数据的传输和接收。项目涵盖了图像捕获、处理、传输、反馈等多个环节,旨在实现机器视觉应用中的图像数据采集与通信。 ## 主要特性和功能 1. 图像捕获使用OpenMV Camera进行图像捕获,支持灰度图像和彩色图像。 2. 图像处理对捕获的图像进行二值化、灰度转换等处理,用于后续机器视觉任务。 3. UART通信通过UART接口,实现与Arduino、ESP32等设备的通信,发送和接收图像数据。 4. SPI通信作为SPI从设备,与Arduino主设备进行通信,实现数据的传输。 5. LED状态指示使用LED灯指示程序运行状态和图像捕获处理进度。

    2_Análises_Geoespaciais_utilizando_Python_e_GEE.ipynb

    gee python 教程(西班牙语)

    按钮点击WIN8 磁贴效果.zip

    按钮点击WIN8 磁贴效果

    动态ListView,支持异步更新列表,异步更新图片.zip

    动态ListView,支持异步更新列表,异步更新图片

    PHP教材管理系统设计(源代码+论文).rar

    PHP教材管理系统设计(源代码+论文)

    将jar文件转换为exe

    将jar文件转换为exe

    (源码)基于SpringBoot和MyBatis的宿舍管理系统.zip

    # 基于Spring Boot和MyBatis的宿舍管理系统 ## 项目简介 本项目是一个基于Spring Boot和MyBatis框架开发的宿舍管理系统,旨在为学生、宿管和后勤人员提供一个高效的管理平台。系统支持用户管理、房间管理、楼宇管理、维修申请等功能,并具备人性化的宿舍分配和可视化的账单管理。 ## 项目的主要特性和功能 1. 用户管理系统中的用户分为学生、宿管和后勤三类,每类用户拥有不同的操作权限。 2. 房间管理支持房间的创建、删除、更新和查询操作,以及房间容量的调整。 3. 楼宇管理支持楼宇的创建、删除、更新和查询操作,以及楼宇入住率和性别信息的统计。 4. 维修申请学生可以提交维修申请,宿管和后勤人员可以管理和处理这些申请。 5. 账单管理支持账单的创建、删除、更新和查询操作,以及Excel文件的上传和数据导入。 6. 宿舍分配系统提供人性化的宿舍分配功能,支持根据学生的意向进行分配。

Global site tag (gtag.js) - Google Analytics