HTTP客户端工具
来源:互联网 发布:牙齿黄了怎么变白知乎 编辑:程序博客网 时间:2024/06/10 14:05
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
/**
* HTTP客户端工具
*
* @version 1.00
* @date 2008/06/26
*/
public class HttpTool {
* HTTP客户端工具
*
* @version 1.00
* @date 2008/06/26
*/
public class HttpTool {
/**
* 默认编码UTF-8
*/
private static String enc = "UTF-8";
* 默认编码UTF-8
*/
private static String enc = "UTF-8";
/**
*
* @param url URL
* @param hm 哈希表
* @param cookie 指定HTTP头Cookie字符串
* @return 服务端响应字符串
*/
public static HashMap postData(String url, HashMap hm, String cookie) {
HashMap returnMap = new HashMap();
HttpClient client = new HttpClient();
PostMethod method = new UTF8PostMethod(url);
try {
if (cookie != null && cookie.length() > 0) {
method.setRequestHeader("Cookie", cookie);
}
if (hm != null) {
NameValuePair[] data = new NameValuePair[hm.size()];
int i = 0;
for (Object key : hm.keySet()) {
data[i++] = new NameValuePair(key.toString(), hm.get(key).toString());
}
method.setRequestBody(data);
}
client.executeMethod(method);
if (cookie != null && cookie.length() > 0) {
Header newCookieHeader = method.getResponseHeader("Set-Cookie");
Header currentCookieHeader = method.getRequestHeader("Cookie");
if (newCookieHeader != null) {
if (currentCookieHeader == null)
method.setRequestHeader("Cookie", newCookieHeader.getValue());
else
method.setRequestHeader("Cookie", currentCookieHeader.getValue() + "; " + newCookieHeader.getValue());
}
}
returnMap.put("string", new String(method.getResponseBody(), enc));
returnMap.put("cookie", method.getRequestHeader("Cookie").getValue());
} catch (Exception e) {
System.err.println("发生异常 原因: " + e.toString());
} finally {
method.releaseConnection();
}
return returnMap;
}
*
* @param url URL
* @param hm 哈希表
* @param cookie 指定HTTP头Cookie字符串
* @return 服务端响应字符串
*/
public static HashMap postData(String url, HashMap hm, String cookie) {
HashMap returnMap = new HashMap();
HttpClient client = new HttpClient();
PostMethod method = new UTF8PostMethod(url);
try {
if (cookie != null && cookie.length() > 0) {
method.setRequestHeader("Cookie", cookie);
}
if (hm != null) {
NameValuePair[] data = new NameValuePair[hm.size()];
int i = 0;
for (Object key : hm.keySet()) {
data[i++] = new NameValuePair(key.toString(), hm.get(key).toString());
}
method.setRequestBody(data);
}
client.executeMethod(method);
if (cookie != null && cookie.length() > 0) {
Header newCookieHeader = method.getResponseHeader("Set-Cookie");
Header currentCookieHeader = method.getRequestHeader("Cookie");
if (newCookieHeader != null) {
if (currentCookieHeader == null)
method.setRequestHeader("Cookie", newCookieHeader.getValue());
else
method.setRequestHeader("Cookie", currentCookieHeader.getValue() + "; " + newCookieHeader.getValue());
}
}
returnMap.put("string", new String(method.getResponseBody(), enc));
returnMap.put("cookie", method.getRequestHeader("Cookie").getValue());
} catch (Exception e) {
System.err.println("发生异常 原因: " + e.toString());
} finally {
method.releaseConnection();
}
return returnMap;
}
/**
*
* @param url URL
* @param hm 哈希表
* @return 服务端响应字符串
*/
public static HashMap postData(String url, HashMap hm) {
return postData(url, hm, "");
}
*
* @param url URL
* @param hm 哈希表
* @return 服务端响应字符串
*/
public static HashMap postData(String url, HashMap hm) {
return postData(url, hm, "");
}
/**
*
* @param url URL
* @param hm 哈希表
* @param request HttpServletRequest对象
* @return 服务端响应字符串
*/
public static HashMap postData(String url, HashMap hm, HttpServletRequest request) {
if (request != null) {
return postData(url, hm, request.getHeader("cookie"));
} else {
return postData(url, hm);
}
}
*
* @param url URL
* @param hm 哈希表
* @param request HttpServletRequest对象
* @return 服务端响应字符串
*/
public static HashMap postData(String url, HashMap hm, HttpServletRequest request) {
if (request != null) {
return postData(url, hm, request.getHeader("cookie"));
} else {
return postData(url, hm);
}
}
/**
*
* @param url URL
* @param hm 哈希表
* @param map 上次响应结果
* @return 服务端响应字符串
*/
public static HashMap postData(String url, HashMap hm, HashMap map) {
if (map != null && map.get("cookie") != null) {
return postData(url, hm, (String) map.get("cookie"));
} else {
return postData(url, hm);
}
}
*
* @param url URL
* @param hm 哈希表
* @param map 上次响应结果
* @return 服务端响应字符串
*/
public static HashMap postData(String url, HashMap hm, HashMap map) {
if (map != null && map.get("cookie") != null) {
return postData(url, hm, (String) map.get("cookie"));
} else {
return postData(url, hm);
}
}
/**
*
* @param url URL
* @param cookie 指定HTTP头Cookie字符串
* @return 服务端响应字符串
*/
public static HashMap getData(String url, String cookie) {
HashMap returnMap = new HashMap();
HttpClient client = new HttpClient();
GetMethod method = new UTF8GetMethod(url);
try {
if (cookie != null && cookie.length() > 0) {
method.setRequestHeader("Cookie", cookie);
}
client.executeMethod(method);
if (cookie != null && cookie.length() > 0) {
Header newCookieHeader = method.getResponseHeader("Set-Cookie");
Header currentCookieHeader = method.getRequestHeader("Cookie");
if (newCookieHeader != null) {
if (currentCookieHeader == null)
method.setRequestHeader("Cookie", newCookieHeader.getValue());
else
method.setRequestHeader("Cookie", currentCookieHeader.getValue() + "; " + newCookieHeader.getValue());
}
}
returnMap.put("string", new String(method.getResponseBody(), enc));
returnMap.put("cookie", method.getRequestHeader("Cookie").getValue());
} catch (Exception e) {
System.err.println("发生异常 原因: " + e.toString());
} finally {
method.releaseConnection();
}
return returnMap;
}
*
* @param url URL
* @param cookie 指定HTTP头Cookie字符串
* @return 服务端响应字符串
*/
public static HashMap getData(String url, String cookie) {
HashMap returnMap = new HashMap();
HttpClient client = new HttpClient();
GetMethod method = new UTF8GetMethod(url);
try {
if (cookie != null && cookie.length() > 0) {
method.setRequestHeader("Cookie", cookie);
}
client.executeMethod(method);
if (cookie != null && cookie.length() > 0) {
Header newCookieHeader = method.getResponseHeader("Set-Cookie");
Header currentCookieHeader = method.getRequestHeader("Cookie");
if (newCookieHeader != null) {
if (currentCookieHeader == null)
method.setRequestHeader("Cookie", newCookieHeader.getValue());
else
method.setRequestHeader("Cookie", currentCookieHeader.getValue() + "; " + newCookieHeader.getValue());
}
}
returnMap.put("string", new String(method.getResponseBody(), enc));
returnMap.put("cookie", method.getRequestHeader("Cookie").getValue());
} catch (Exception e) {
System.err.println("发生异常 原因: " + e.toString());
} finally {
method.releaseConnection();
}
return returnMap;
}
/**
*
* @param url URL
* @return 服务端响应字符串
*/
public static HashMap getData(String url) {
return getData(url, "");
}
*
* @param url URL
* @return 服务端响应字符串
*/
public static HashMap getData(String url) {
return getData(url, "");
}
/**
*
* @param url URL
* @param request HttpServletRequest对象
* @return 服务端响应字符串
*/
public static HashMap getData(String url, HttpServletRequest request) {
if (request != null) {
return getData(url, request.getHeader("cookie"));
} else {
return getData(url);
}
}
*
* @param url URL
* @param request HttpServletRequest对象
* @return 服务端响应字符串
*/
public static HashMap getData(String url, HttpServletRequest request) {
if (request != null) {
return getData(url, request.getHeader("cookie"));
} else {
return getData(url);
}
}
/**
*
* @param url URL
* @param map 上次响应结果
* @return 服务端响应字符串
*/
public static HashMap getData(String url, HashMap map) {
if (map != null && map.get("cookie") != null) {
return getData(url, (String) map.get("cookie"));
} else {
return getData(url);
}
}
*
* @param url URL
* @param map 上次响应结果
* @return 服务端响应字符串
*/
public static HashMap getData(String url, HashMap map) {
if (map != null && map.get("cookie") != null) {
return getData(url, (String) map.get("cookie"));
} else {
return getData(url);
}
}
/**
* Inner class for UTF-8 support
*/
public static class UTF8PostMethod extends PostMethod {
/**
* @param url URL
*/
public UTF8PostMethod(String url) {
super(url);
}
* Inner class for UTF-8 support
*/
public static class UTF8PostMethod extends PostMethod {
/**
* @param url URL
*/
public UTF8PostMethod(String url) {
super(url);
}
/**
* @return 默认编码
*/
public String getRequestCharSet() {
// return super.getRequestCharSet();
return enc;
}
}
* @return 默认编码
*/
public String getRequestCharSet() {
// return super.getRequestCharSet();
return enc;
}
}
/**
* Inner class for UTF-8 support
*/
public static class UTF8GetMethod extends GetMethod {
/**
* @param url URL
*/
public UTF8GetMethod(String url) {
super(url);
}
* Inner class for UTF-8 support
*/
public static class UTF8GetMethod extends GetMethod {
/**
* @param url URL
*/
public UTF8GetMethod(String url) {
super(url);
}
/**
* @return 默认编码
*/
public String getRequestCharSet() {
// return super.getRequestCharSet();
return enc;
}
}
}
* @return 默认编码
*/
public String getRequestCharSet() {
// return super.getRequestCharSet();
return enc;
}
}
}
- HTTP客户端工具
- HTTP客户端操作工具类
- 6、http客户端httpie工具
- Http协议客户端工具之Httpclient
- apache httpclient 客户端HTTP抓取网页内容工具
- 获取客户端http请求IP地址工具类
- http客户端
- HTTP工具
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)
- [收藏]实现支持断点续传多线程下载的 Http Web 客户端工具类 (第2版)
- Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient)
- /* .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类【转】
- 实现支持断点续传多线程下载的 Http Web 客户端工具类
- .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类
- asp.net 实现支持断点续传多线程下载的 Http Web 客户端工具类
- C#.Net: 实现支持断点续传多线程下载的 Http Web 客户端工具类
- redboot 启动分析 一句话
- 机房收费系统——表分析
- 按当前窗口大小缩放图片
- 第一篇
- 祝福!
- HTTP客户端工具
- 尝试新东西
- 在java中解释执行javascript命令
- malloc(0)的问题
- ext designer自动生成代码的使用
- Html 传递参数
- 理解Windows Phone 7应用程序执行模型,墓碑机制,启动器和选择器及更多内容——Part 2
- struts2的请求处理过程源码分析
- Busybox - Yaffs2文件系统