`
keep_going
  • 浏览: 11785 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

http请求与响应工具类

阅读更多

 

 对于http的请求与响应,可以使用commons-httpclient.jar来实现数据的接收与发送,代码如下:
package com.project.util;

import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;

/**
 * Http请求公共类
 * @author Administrator
 *
 */
public class HttpPost {
	private static HttpClient httpclient = null;
	private static int iTimeOut = 5000;
	@SuppressWarnings("rawtypes")
	private static Map map = new HashMap();
	private static final Object object = new Object();
	private String postUrl = null;
	
	private HttpPost() {
		
	}
	
	public static HttpPost getInstance(String sUrl) {
		HttpPost instance = null;
		if((instance = (HttpPost) map.get(sUrl)) == null) {
			synchronized (object) {
				if((instance = (HttpPost)map.get(sUrl)) == null) {
					if(httpclient == null) {
						MultiThreadedHttpConnectionManager manager = new MultiThreadedHttpConnectionManager();
						httpclient = new HttpClient(manager);
					}
					instance = new HttpPost();
					instance.postUrl = sUrl;
				}
			}
		}
		return instance;
	}
	
	public String post(Map map) {
		return post(map, "application/x-www-form-urlencoded", "Mozilla/4.0");
	}	
	
	public String post(Map map, String contentType, String userAgent) {
		if(iTimeOut >= 0) {
			httpclient.getHttpConnectionManager().getParams().setConnectionTimeout(iTimeOut);
		} else {
			httpclient.getHttpConnectionManager().getParams().setConnectionTimeout(0);
		}
		PostMethod method = new PostMethod(postUrl);
		method.addRequestHeader("Content-Type", contentType);
		method.addRequestHeader("User-Agent", userAgent);
		// 处理需要发送的字符串
		NameValuePair[] valuePairs = new NameValuePair[map.size()];
		Collection collection = map.entrySet();
		Iterator iterator = collection.iterator();
		int i = 0;
		while(iterator.hasNext()) {
			String strKey = ((Map.Entry)iterator.next()).getKey().toString();
			valuePairs[(i++)] = new NameValuePair(strKey, (String)map.get(strKey));
		}
		method.setRequestBody(valuePairs);
		String responseStr = "";
		try {
			httpclient.executeMethod(method);
			String charSet = method.getResponseCharSet();
			responseStr = new String(method.getResponseBodyAsString().getBytes(charSet), "ISO8859-1");
		} catch(Exception e) {
			e.printStackTrace();
		}
		return responseStr;
	}
}

 

分享到:
评论

相关推荐

    Https请求工具类,Java实现http请求,https请求

    Https请求工具类,Java实现http请求,https请求 本篇文章将详细介绍如何使用Java语言实现Http和Https请求的工具类,包括如何建立Https连接、如何实现Post请求、如何处理SSL验证等内容。 在Java中,使用...

    Java Web响应结果工具类

    ResultResponse 是一个设计用于封装Web应用响应的Java类。它通过泛型支持对各种数据类型的响应封装,包含以下几个关键部分: - 状态(Status):表示请求处理的成功或失败。 - 状态码(Code):提供具体的状态标识,...

    计算机病毒与防护:网络渗透工具漏洞利用类.ppt

    渗透工具 HTTP的请求响应模型 漏洞利用类工具 Windows密码破解工具 开发者:Oxid.it 平台:windows 版权:免费 * * * * * * * * 漏洞利用类工具 渗透工具 HTTP的请求响应模型 漏洞利用类工具 Metasploit Framework...

    使用filter配合装饰器模式实现对请求参数加密

    这是一个基于servlet的方式实现对request参数...程序中使用了本人自己封装的工具类感性趣的朋友可自行下载,目前工具类简单;加关注在后期的博客中;工具类会加强;这个程序设计的技术有servlet、filter、装饰器模式;

    Android-JavaLiteHTTP是一个用于发出HTTP请求和返回响应的小型库

    JavaLite HTTP是一个用于发出HTTP请求和返回响应的小型库。 它没有除JDK之外的依赖项。

    Java实现Http工具类的封装操作示例

    主要介绍了Java实现Http工具类的封装操作,涉及java针对http请求与响应、远程交互与字符串拼接等操作封装技巧,需要的朋友可以参考下

    【微信小程序】流数据请求示例源码应用于AI工具、问答、客服

    在小程序中,流数据请求通常指的是一种持续的数据传输方式,与传统的HTTP请求不同,流数据请求能够实时地获取和处理数据,适用于需要持续更新或大量数据传输的场景。 AI问答:在AI问答场景中,流数据请求的应用主要...

    Android 上传文件工具类

    * 获取响应码 200=成功 当响应成功,获取响应的流 */ int res = conn.getResponseCode(); Log.e(TAG, "response code:" + res); if (res == 200) { return SUCCESS; } }else{ ...

    HttpConnectionTool工具类

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

    计算机病毒与防护:网络渗透工具信息收集类.ppt

    单击此处添加标题 * * * * * * * * * 目录页 网络渗透工具信息收集类 渗透工具 HTTP的请求响应模型 渗透工具不胜枚举,只能选取少数工具来介绍: ?信息收集类工具 ?漏洞利用类工具 ?辅助类及工具套件 渗透工具 信息...

    umi-request:基于获取的请求工具

    支持的功能url参数自动序列化发布数据提交方法得到简化响应返回处理简化api超时支持api请求缓存支持支持处理gbk 请求和响应拦截器支持,例如axios 统一错误处理中间件支持取消请求支持,例如axios 从node.js发出http...

    JAVA发送http get/post请求,调用http接口、方法详解

    主要介绍了Java发送http get/post请求调用接口/方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    CDSpace 测试工具

    CDSpace是基于Apache Http Client和Sun Http Server两个库,以JavaFX为GUI框架开发的一款HTTP接口测试工具,主要功能分为两部分:1、模拟HttpClient发送自定义请求给服务端,接受响应并将响应的消息体和头域显示在...

    OkHttpUtil.java

    okhttp 封装的工具类使用超级方便 HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttp是一个高效的HTTP客户端,它有以下默认特性: 支持HTTP/2,允许所有同一个...

    webClient (通过向任一web服务器发送http请求,查看 服务器端过来的内容)

    通过向任一服务器发送http请求,查看server端过来的内容,状态行,响应报头,空行,实际内容. 这可以帮助理解http协议. 运行方法: 1.有eclipse或其它开发环境下: 将里面的java源文件放入任一java工程的default包中, ...

    nginx-sla:Nginx模块收集有关HTTP代码和上游响应时间的扩展统计信息,以进一步传输到诸如zabbix之类的监视工具

    nginx-sla模块收集有关HTTP代码和上游响应时间的高级统计信息,以进一步传输到诸如监视工具。 该模块回答以下问题: 上游(后端)的平均响应时间是多少? HTTP状态为200、404的响应数是多少? 不同类别的HTTP状态-2...

    jframework:基于对spring boot的二次封装,目的是减少重复代码,提高开发效率

    局部拦截支持docker部署支持k8s部署支持json序列化时自定义小数位数接口版本控制保留精度的数学计算工具类http请求工具类redis和redis分布式锁工具类json响应工具类支持Jenkinsfile重建二维码生成工具类redis id生成...

    接口测试整理接口测试整理

    测试原理是根据用户需求,借助工具或代码模拟客户端,组织数据,向服务器发送请求,校验服务器回发的响应数据是否与预期结果一致。 接口测试的特点是: 1. 提早介入,符合测试的质量控制前移原则。 2. 可以发现...

    2022非常全的接口测试面试题及参考答案

    然后使用 Postman 或 Jmeter 工具执行接口测试,包括新建线程组、HTTP 请求默认值、断言和查看结果树等步骤。最后调试并执行用例,编写接口测试报告。 二、cookie、session 和 token 的区别 cookie 数据存放在客户...

    Postman-7.30.1-win64.zip

    Postman是在开发或者调试网络程序的时候用来跟踪网页请求的工具,简单来说,它是用来进行接口测试和跟踪http请求的工具,这里给出github的地址: https://github.com/postmanlabs Postman的优点有以下几类: ...

Global site tag (gtag.js) - Google Analytics