`

Http工具类

 
阅读更多
public class HttpUtil
{
    static Properties prop = System.getProperties();
	static
	{
		try
		{
			Properties prop = System.getProperties();
			InputStream in = HttpUtil.class.getClassLoader()
					.getResourceAsStream("util.properties");
			prop.load(in);
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
	}

	public static String get(String url)
	{
		String response = null;
		Map<String, String> result = new HashMap<String, String>();
		HttpClient client = new HttpClient();
		String serverurl = prop.getProperty("http.serverurl");
		GetMethod method = new GetMethod(serverurl + url);
		try
		{
			// 执行方法返回状态码
			int statusCode = client.executeMethod(method);
			// 返回的信息
			response = method.getResponseBodyAsString();
			result.put("statuscode", Integer.toString(statusCode));
			result.put("response", response);
			System.out.println(response);
		}
		catch (HttpException e)
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		finally
		{
			// 无论响应与否都要关闭连接
			method.releaseConnection();
		}
		return response;
	}

	public static String post(String url, Map<String, Object> data)
	{
		Map<String, Object> ret = new HashMap<String, Object>();
		String response = null;
		HttpClient client = new HttpClient();
		String serverurl = prop.getProperty("http.serverurl");
		PostMethod method = new PostMethod(serverurl + url);
		method.addRequestHeader("Content-Type",
				"application/x-www-form-urlencoded;charset=UTF-8");
		try
		{
			// 设置参数
			for (Map.Entry<String, Object> entry : data.entrySet())
			{
				method.addParameter(new NameValuePair(entry.getKey(), String
						.valueOf(entry.getValue())));
			}
			// 执行方法返回状态码
			int statusCode = client.executeMethod(method);
			// 返回的信息
			response = method.getResponseBodyAsString();
			ret.put("statuscode", statusCode);
			ret.put("response", response);
		}
		catch (HttpException e)
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		finally
		{
			// 无论响应与否都要关闭连接
			method.releaseConnection();
		}
		return response;
	}

	public static Map<String, Object> post(String url, String xml)
	{
		Map<String, Object> result = new HashMap<String, Object>();
		HttpClient client = new HttpClient();
		String serverurl = prop.getProperty("http.serverurl");
		PostMethod method = new PostMethod(serverurl + url);
		method.setRequestHeader("Content-type", "text/xml; charset=UTF-8");
		try
		{
			RequestEntity entity = new StringRequestEntity(xml, "text/xml",
					"iso-8859-1");
			method.setRequestEntity(entity);
			// 执行方法返回状态码
			int statusCode = client.executeMethod(method);
			result.put("statuscode", Integer.toString(statusCode));
			// 若是转发301、302
			if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY
					|| statusCode == HttpStatus.SC_MOVED_TEMPORARILY)
			{
				// 从头中取出转向的地址
				Header locationHeader = method.getResponseHeader("location");
				String location = locationHeader.getValue();
				result.put("redirect", location);
			}
			else
			{
				// 返回的信息
				result.put("response", method.getResponseBodyAsString());
			}
		}
		catch (HttpException e)
		{
			e.printStackTrace();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		finally
		{
			// 无论响应与否都要关闭连接
			method.releaseConnection();
		}
		return result;
	}
}

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    ThinkPHP-Http工具类.zip

    ThinkPHP Http工具类(用于远程采集 远程下载),采集远程文件,使用 fsockopen 通过 HTTP 协议直接访问(采集)远程文件,如果主机或服务器没有开启 CURL 扩展可考虑使用,可以指定下载显示的文件名,并自动发送相应...

    Http工具类,一个http的java工具类

    Http工具类

    HTTP兼容HTTPS请求工具类

    Java Http 工具类,和Https工具类,自动识别Https走SSL协议

    基于apache http的工具类

    虽然具体的博客内容无法在此直接提供,但我们可以根据常见的HTTP工具类功能来推测这些类可能包含的功能。 1. `DateFuncs.java`:这个类可能包含了与日期时间相关的辅助方法,如格式化日期字符串、解析日期或计算...

    angular http请求工具类

    构建一个HTTP工具类,我们通常会考虑以下几个方面: 1. **配置基础URL**:在工具类中,我们可以设置一个常量来存储API的基础URL,这样在发起请求时可以减少重复代码。 ```typescript export class HttpUtils { ...

    Java Http工具类HttpClientUtil

    多年积累,功能比较强大,可设置路由连接数,时间,请求类型包括get,post, 参数包括urlcode,map,json,xml。注释很清楚。

    http通用工具类

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

    android http 工具类 get post

    android http 工具类 get post

    http请求工具类

    http请求工具类 常见的post get请求

    微信公众号支付签名生成工具类和xml转换工具类和双向验证请求工具类

    微信公众号支付签名生成工具类和xml和map转换工具类和双向验证请求工具类

    ThinkPHP-Http工具类

    ThinkPHP Http工具类(用于远程采集 远程下载),采集远程文件,使用 fsockopen 通过 HTTP 协议直接访问(采集)远程文件,如果主机或服务器没有开启 CURL 扩展可考虑使用,可以指定下载显示的文件名,并自动发送相应...

    Android-单文件Http工具类支持GETPOST断点续传多线程断点续传

    总之,"Android-单文件Http工具类支持GETPOST断点续传多线程断点续传"是一个高效实用的工具,它简化了Android应用中的网络通信过程,特别是在处理大文件传输时,能够提供更好的性能和可靠性。开发者可以根据自己的...

    C# HttpHelper工具类

    功能强大的 HttpHelper 工具类, 需要添加扩展 Newtonsoft.Json 这个dll,可以直接在nugut 中搜索下载就行

    http工具类

    检查的http工具类,拿来即用。

    Http工具类HttpUtil.java

    Http工具类HttpUtil.java:这个文件是工作用到的工具类,上传上来以后自己用到或者有同学也需要。 maven项目添加如下的jar包依赖,文件放到项目中修改一下package就可以直接使用了。 &lt;groupId&gt;org.apache....

    http工具类,get请求并解析对方返回的json为map

    http工具类,get请求并解析对方返回的json为map

    Java-Android工具类

    Http工具类则是处理网络请求的关键。在Android应用中,网络通信是常见的需求,包括发送GET、POST请求,下载或上传文件等。这类工具类通常实现了异步处理,避免阻塞UI线程,并提供了处理网络异常的能力。例如,`...

    http简易工具类

    开发者可以通过阅读和理解`WebUtils.java`这个文件,了解HTTP工具类的实现细节,以及如何在自己的项目中集成和使用。 `WebUtils.java`作为压缩包中的唯一文件,很可能是整个工具类的核心。以下是一些可能包含在`...

Global site tag (gtag.js) - Google Analytics