`
keep_going
  • 浏览: 11990 次
  • 性别: 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;
	}
}

 

分享到:
评论

相关推荐

    http请求提交类工具类

    4. 异步与同步:为了提高用户体验,工具类通常会提供异步请求功能,如`sendAsyncRequest(url, callback)`,并在回调函数中处理响应结果。同步请求则会阻塞当前线程直到请求完成。 5. 错误处理:工具类应具备处理...

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

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

    http请求工具类

    在IT行业中,HTTP请求工具类是开发者们进行系统间数据交互的重要工具,它使得我们可以方便地发送各种HTTP请求,如GET、POST等,确保了不同系统间的通信稳定性和效率。"http请求工具类"通常是一个封装了HTTP客户端...

    HttpUtils 发送http请求工具类(实例讲解)

    HTTP 请求工具类是 Java 语言中一个常用的工具类,用于发送 HTTP 请求并处理响应结果。本文将对 HttpUtils 发送 HTTP 请求工具类进行详细的讲解,包括其实现原理、关键代码分析和使用示例。 HTTP 请求基础 在了解 ...

    Java实现的Https请求工具类

    通过这个工具类,开发者可以轻松地发起HTTPS请求,获取服务器响应,并进行数据交互,同时确保通信过程的安全性。在实际项目中,这样的工具类能够提高代码的可复用性和维护性,降低网络请求的复杂度。

    java发送http请求工具类

    本篇文章将详细讲解一个简单的Java工具类,用于发送HTTP请求,该工具类名为HttpURLUtils。 首先,让我们理解HTTP协议的基本概念。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,它定义了客户端(如...

    JAVA 发送http请求工具类

    首先,`HttpUtil`类通常用于封装HTTP请求的操作。在Java中,我们可以使用`java.net.HttpURLConnection`或`org.apache.http.client.HttpClient`(Apache HttpClient库)来发送HTTP请求。这两个方法各有优劣:`...

    http请求工具类HttpClientUtil,get,post请求(csdn)————程序.pdf

    用户可以调用 `doGetJson` 或 `doPostJson` 方法,传入相应的 URL、Header 和参数,工具类会处理 HTTP 请求的细节,返回服务器响应的数据。 7. **Apache HttpClient 库的功能**: - 支持各种 HTTP 特性,如重定向...

    angular http请求工具类

    这个"angular http请求工具类"很可能是开发人员为了简化HTTP请求操作而创建的一个自定义服务。通常,这样的工具类会封装Angular内置的HttpClient模块,提供更方便、更易用的API接口。下面我们将详细探讨Angular中的...

    http请求工具类及相关jar包

    5. **工具类的设计**:这个“http请求工具类”很可能是对上述API的封装,提供了一种简洁的调用方式,例如,可能包含静态方法来执行GET或POST请求,参数化请求URL、请求头和请求体,返回响应结果等。这样的工具类提高...

    网络请求工具类

    HttpClient允许开发者发起GET、POST等HTTP请求,并处理响应。使用HttpClient时,需要创建HttpClient对象,然后构建HttpGet或HttpPost对象设置请求参数,最后执行execute方法获取响应。虽然HttpClient在Android 6.0...

    Java Https工具类,Java Https Post请求

    总结来说,`HttpsUtils.java`是一个用于简化Java程序中HTTPS POST请求的工具类,它隐藏了复杂的SSL/TLS配置和HTTP连接管理,使得开发者可以更加专注于业务逻辑。在实际开发中,此类可以帮助提高代码的可读性和可维护...

    http通用工具类

    在Java编程中,HTTP通用工具类是一个非常实用的组件,它可以帮助开发者简化HTTP请求和响应的处理过程。HTTP协议是互联网上应用最广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器。一个良好的HTTP通用...

    封装http请求工具类

    4. **处理响应**:工具类应该负责接收服务器的响应,并提供获取响应码、响应头和响应体的方法。例如,可以提供`int getResponseCode()`,`Map, String> getResponseHeaders()`和`String getResponseBody()`这样的...

    php中的http请求工具

    在PHP编程环境中,HTTP请求工具扮演着至关重要的角色,它们帮助开发者轻松地与远程服务器进行交互,发送GET、POST等不同类型的HTTP请求。本话题主要围绕"PHP中的HTTP请求工具",尤其是对cURL库的基本封装,以实现更...

    Spring MVC请求参数与响应结果全局加密和解密详解

    在处理请求参数时,我们需要考虑到第三方的提交方式,这可能是POST的Http请求方法,提交报文的时候指定ContentType为application/json或者application/x-www-form-urlencoded。在这种情况下,我们需要兼容这两种...

    AFN网络请求封装工具类

    AFNetworking提供了GET、POST、PUT、DELETE等多种HTTP请求方式,并支持上传和下载任务,以及JSON、XML等数据解析。此外,AFNetworking还支持自定义请求头、请求参数、响应序列化等功能,极大地简化了网络编程的工作...

    http请求响应公共方法

    总结起来,"HTTP请求响应公共方法"是开发中必不可少的工具,它们帮助我们与远程服务器进行数据交互。通过理解HTTP协议和RESTful原则,我们可以设计出高效、易用的接口。在Java中,可以利用各种库或内置类实现这些...

    http发送Get和Post请求工具类

    本文将详细介绍一个封装了HTTP GET和POST请求的工具类,以及如何使用此类进行网络请求。该工具类支持HTTPS,确保数据传输的安全性。 首先,我们来看`HttpUtils`类,这是核心的网络请求工具类。在`HttpUtils`中,...

Global site tag (gtag.js) - Google Analytics