哪位老兄有http+xml的详细资料麻烦发下,谢谢! 哪位老兄有http+xml的详细资料麻烦发下,谢谢! 或者直接发到我邮箱:[email protected] 谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.io.IOException;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;import java.util.Iterator;import java.util.Map;import java.util.Set;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.HttpStatus;import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;import org.apache.commons.httpclient.methods.GetMethod;import org.apache.commons.httpclient.methods.PostMethod;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class HttpUtil{ private static Log log = LogFactory.getLog(HttpUtil.class); /** * 定义编码格式 UTF-8 */ public static final String URL_PARAM_DECODECHARSET_UTF8 = "UTF-8"; /** * 定义编码格式 GBK */ public static final String URL_PARAM_DECODECHARSET_GBK = "GBK"; private static final String URL_PARAM_CONNECT_FLAG = "&"; private static final String EMPTY = ""; private static MultiThreadedHttpConnectionManager connectionManager = null; private static int connectionTimeOut = 25000;//Http 连接超时为25秒 private static int socketTimeOut = 25000;//请求超时为 25 秒 private static int maxConnectionPerHost = 20;//每个主机的最大并行链接数 private static int maxTotalConnections = 20;//客户端总并行链接最大数 private static HttpClient client; static { connectionManager = new MultiThreadedHttpConnectionManager(); connectionManager.getParams().setConnectionTimeout(connectionTimeOut); connectionManager.getParams().setSoTimeout(socketTimeOut); connectionManager.getParams().setDefaultMaxConnectionsPerHost( maxConnectionPerHost); connectionManager.getParams().setMaxTotalConnections( maxTotalConnections); client = new HttpClient(connectionManager); } /** * POST方式提交数据 * * @param url * 待请求的URL * @param params * 要提交的数据 * @param enc * 编码 * @return 响应结果 * @throws IOException * IO异常 */ public static String URLPost(String url, Map<String, String> params, String enc) { String response = EMPTY; PostMethod postMethod = null; try { postMethod = new PostMethod(url); postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=" + enc); // 将表单的值放入postMethod中 Set<String> keySet = params.keySet(); for (String key : keySet) { String value = params.get(key); postMethod.addParameter(key, value); } // 执行postMethod int statusCode = client.executeMethod(postMethod); if (statusCode == HttpStatus.SC_OK) { response = postMethod.getResponseBodyAsString(); } else { log.error("响应状态码 = " + postMethod.getStatusCode()); } } catch (HttpException e) { log.error("发生致命的异常,可能是协议不对或者返回的内容有问题", e); e.printStackTrace(); } catch (IOException e) { log.error("发生网络异常", e); e.printStackTrace(); } finally { if (postMethod != null) { postMethod.releaseConnection(); postMethod = null; } } return response; } /** * POST方式提交数据 * * @param url * 待请求的URL * @param params * 要提交的数据 * @param enc * 编码 * @return 响应结果 * @throws IOException * IO异常 */ public static String URLPost(String url, Map<String, String> params, String xmls, String enc)throws HttpException,IOException { String response = EMPTY; PostMethod postMethod = null; try { postMethod = new PostMethod(url); postMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=" + enc); // 将表单的值放入postMethod中 if(params!=null) { Set<String> keySet = params.keySet(); for (String key : keySet) { String value = params.get(key); postMethod.addParameter(key, value); } } ByteArrayRequestEntity entity = new ByteArrayRequestEntity(xmls .getBytes()); postMethod.setRequestEntity(entity); // 执行postMethod int statusCode = client.executeMethod(postMethod); if (statusCode == HttpStatus.SC_OK) { response = postMethod.getResponseBodyAsString(); } else { log.error("响应状态码 = " + postMethod.getStatusCode()); } } catch (HttpException e) {// log.error("发生致命的异常,可能是协议不对或者返回的内容有问题", e);// e.printStackTrace(); throw new HttpException(); } catch (IOException e) {// log.error("发生网络异常", e);// e.printStackTrace(); throw new IOException(); } finally { if (postMethod != null) { postMethod.releaseConnection(); postMethod = null; } } return response; } /** * GET方式提交数据 * * @param url * 待请求的URL * @param params * 要提交的数据 * @param enc * 编码 * @return 响应结果 * @throws IOException * IO异常 */ public static String URLGet(String url, Map<String, String> params, String enc) { String response = EMPTY; GetMethod getMethod = null; StringBuffer strtTotalURL = new StringBuffer(EMPTY); if (strtTotalURL.indexOf("?") == -1) { strtTotalURL.append(url).append("?").append(getUrl(params, enc)); } else { strtTotalURL.append(url).append("&").append(getUrl(params, enc)); } log.debug("GET请求URL = \n" + strtTotalURL.toString()); try { getMethod = new GetMethod(strtTotalURL.toString()); getMethod.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=" + enc); // 执行getMethod int statusCode = client.executeMethod(getMethod); if (statusCode == HttpStatus.SC_OK) { response = getMethod.getResponseBodyAsString(); } else { log.debug("响应状态码 = " + getMethod.getStatusCode()); } } catch (HttpException e) { log.error("发生致命的异常,可能是协议不对或者返回的内容有问题", e); e.printStackTrace(); } catch (IOException e) { log.error("发生网络异常", e); e.printStackTrace(); } finally { if (getMethod != null) { getMethod.releaseConnection(); getMethod = null; } } return response; } /** * 据Map生成URL字符串 * * @param map * Map * @param valueEnc * URL编码 * @return URL */ private static String getUrl(Map<String, String> map, String valueEnc) { if (null == map || map.keySet().size() == 0) { return (EMPTY); } StringBuffer url = new StringBuffer(); Set<String> keys = map.keySet(); for (Iterator<String> it = keys.iterator(); it.hasNext();) { String key = it.next(); if (map.containsKey(key)) { String val = map.get(key); String str = val != null ? val : EMPTY; try { str = URLEncoder.encode(str, valueEnc); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } url.append(key).append("=").append(str).append( URL_PARAM_CONNECT_FLAG); } } String strURL = EMPTY; strURL = url.toString(); if (URL_PARAM_CONNECT_FLAG.equals(EMPTY + strURL.charAt(strURL.length() - 1))) { strURL = strURL.substring(0, strURL.length() - 1); } return (strURL); }} http://www.ibm.com/developerworks/cn/opensource/os-httpclient/ weblogic启动异常,求解 安装插件时,遇到这一坨问题,求解决方案 让我吐血的问题,大家都来看看 MEM_DEV_ARGS是什么意思? 线程同步问题 适用JasperReports的iReport设计报表的时候可以调用orcale的存储过程并返回多个结果集吗? 说说您们的版本控制系统!! tomcat报tomcat报 如何用hql语句查询表的最后10条记录啊? System.gc()为什么没有调用finalize()方法? 防伪技术请高手指点? 一道java题目,等待中
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.methods.ByteArrayRequestEntity;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class HttpUtil
{
private static Log log = LogFactory.getLog(HttpUtil.class); /**
* 定义编码格式 UTF-8
*/
public static final String URL_PARAM_DECODECHARSET_UTF8 = "UTF-8"; /**
* 定义编码格式 GBK
*/
public static final String URL_PARAM_DECODECHARSET_GBK = "GBK"; private static final String URL_PARAM_CONNECT_FLAG = "&"; private static final String EMPTY = ""; private static MultiThreadedHttpConnectionManager connectionManager = null; private static int connectionTimeOut = 25000;//Http 连接超时为25秒 private static int socketTimeOut = 25000;//请求超时为 25 秒 private static int maxConnectionPerHost = 20;//每个主机的最大并行链接数 private static int maxTotalConnections = 20;//客户端总并行链接最大数 private static HttpClient client; static
{
connectionManager = new MultiThreadedHttpConnectionManager();
connectionManager.getParams().setConnectionTimeout(connectionTimeOut);
connectionManager.getParams().setSoTimeout(socketTimeOut);
connectionManager.getParams().setDefaultMaxConnectionsPerHost(
maxConnectionPerHost);
connectionManager.getParams().setMaxTotalConnections(
maxTotalConnections);
client = new HttpClient(connectionManager);
} /**
* POST方式提交数据
*
* @param url
* 待请求的URL
* @param params
* 要提交的数据
* @param enc
* 编码
* @return 响应结果
* @throws IOException
* IO异常
*/
public static String URLPost(String url, Map<String, String> params,
String enc)
{ String response = EMPTY;
PostMethod postMethod = null;
try
{
postMethod = new PostMethod(url);
postMethod.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=" + enc);
// 将表单的值放入postMethod中
Set<String> keySet = params.keySet();
for (String key : keySet)
{
String value = params.get(key);
postMethod.addParameter(key, value);
}
// 执行postMethod
int statusCode = client.executeMethod(postMethod);
if (statusCode == HttpStatus.SC_OK)
{
response = postMethod.getResponseBodyAsString();
}
else
{
log.error("响应状态码 = " + postMethod.getStatusCode());
}
}
catch (HttpException e)
{
log.error("发生致命的异常,可能是协议不对或者返回的内容有问题", e);
e.printStackTrace();
}
catch (IOException e)
{
log.error("发生网络异常", e);
e.printStackTrace();
}
finally
{
if (postMethod != null)
{
postMethod.releaseConnection();
postMethod = null;
}
} return response;
} /**
* POST方式提交数据
*
* @param url
* 待请求的URL
* @param params
* 要提交的数据
* @param enc
* 编码
* @return 响应结果
* @throws IOException
* IO异常
*/
public static String URLPost(String url, Map<String, String> params,
String xmls, String enc)throws HttpException,IOException
{ String response = EMPTY;
PostMethod postMethod = null;
try
{
postMethod = new PostMethod(url);
postMethod.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=" + enc);
// 将表单的值放入postMethod中
if(params!=null)
{
Set<String> keySet = params.keySet();
for (String key : keySet)
{
String value = params.get(key);
postMethod.addParameter(key, value);
}
} ByteArrayRequestEntity entity = new ByteArrayRequestEntity(xmls
.getBytes());
postMethod.setRequestEntity(entity); // 执行postMethod
int statusCode = client.executeMethod(postMethod);
if (statusCode == HttpStatus.SC_OK)
{
response = postMethod.getResponseBodyAsString();
}
else
{
log.error("响应状态码 = " + postMethod.getStatusCode());
}
}
catch (HttpException e)
{
// log.error("发生致命的异常,可能是协议不对或者返回的内容有问题", e);
// e.printStackTrace();
throw new HttpException();
}
catch (IOException e)
{
// log.error("发生网络异常", e);
// e.printStackTrace();
throw new IOException();
}
finally
{
if (postMethod != null)
{
postMethod.releaseConnection();
postMethod = null;
}
}
return response;
} /**
* GET方式提交数据
*
* @param url
* 待请求的URL
* @param params
* 要提交的数据
* @param enc
* 编码
* @return 响应结果
* @throws IOException
* IO异常
*/
public static String URLGet(String url, Map<String, String> params,
String enc)
{ String response = EMPTY;
GetMethod getMethod = null;
StringBuffer strtTotalURL = new StringBuffer(EMPTY); if (strtTotalURL.indexOf("?") == -1)
{
strtTotalURL.append(url).append("?").append(getUrl(params, enc));
}
else
{
strtTotalURL.append(url).append("&").append(getUrl(params, enc));
}
log.debug("GET请求URL = \n" + strtTotalURL.toString()); try
{
getMethod = new GetMethod(strtTotalURL.toString());
getMethod.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded;charset=" + enc);
// 执行getMethod
int statusCode = client.executeMethod(getMethod);
if (statusCode == HttpStatus.SC_OK)
{
response = getMethod.getResponseBodyAsString();
}
else
{
log.debug("响应状态码 = " + getMethod.getStatusCode());
}
}
catch (HttpException e)
{
log.error("发生致命的异常,可能是协议不对或者返回的内容有问题", e);
e.printStackTrace();
}
catch (IOException e)
{
log.error("发生网络异常", e);
e.printStackTrace();
}
finally
{
if (getMethod != null)
{
getMethod.releaseConnection();
getMethod = null;
}
} return response;
} /**
* 据Map生成URL字符串
*
* @param map
* Map
* @param valueEnc
* URL编码
* @return URL
*/
private static String getUrl(Map<String, String> map, String valueEnc)
{ if (null == map || map.keySet().size() == 0)
{
return (EMPTY);
}
StringBuffer url = new StringBuffer();
Set<String> keys = map.keySet();
for (Iterator<String> it = keys.iterator(); it.hasNext();)
{
String key = it.next();
if (map.containsKey(key))
{
String val = map.get(key);
String str = val != null ? val : EMPTY;
try
{
str = URLEncoder.encode(str, valueEnc);
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
url.append(key).append("=").append(str).append(
URL_PARAM_CONNECT_FLAG);
}
}
String strURL = EMPTY;
strURL = url.toString();
if (URL_PARAM_CONNECT_FLAG.equals(EMPTY
+ strURL.charAt(strURL.length() - 1)))
{
strURL = strURL.substring(0, strURL.length() - 1);
} return (strURL);
}}