import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; public class HttpRequestProxy { // 连接超时 private static int connectTimeOut = 5000; // 读取数据超时 private static int readTimeOut = 10000; // 请求编码 private static String requestEncoding = "UTF-8"; /** * <pre> * 发送带参数的GET的HTTP请求 * </pre> * * @param reqUrl * HTTP请求URL * @param parameters * 参数映射表 * @return HTTP响应的字符串 */ public static String doGet(String reqUrl, Map parameters) { HttpURLConnection url_con = null; String responseContent = null; try { StringBuffer params = new StringBuffer(); for (Iterator iter = parameters.entrySet().iterator(); iter.hasNext();) { Entry element = (Entry) iter.next(); params.append(element.getKey().toString()); params.append("="); params.append(URLEncoder.encode(element.getValue().toString(), HttpRequestProxy.requestEncoding)); params.append("&"); } if (params.length() > 0) { params = params.deleteCharAt(params.length() - 1); } URL url = new URL(reqUrl); url_con = (HttpURLConnection) url.openConnection(); url_con.setRequestMethod("GET"); // System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(HttpRequestProxy.connectTimeOut));// (单位:毫秒)jdk1.4换成这个,连接超时 // System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(HttpRequestProxy.readTimeOut)); // (单位:毫秒)jdk1.4换成这个,读操作超时 url_con.setConnectTimeout(getConnectTimeOut()); //(单位:毫秒)jdk 1.5换成这个,连接超时 url_con.setReadTimeout(getReadTimeOut()); //(单位:毫秒)jdk 1.5换成这个,读操作超时 url_con.setDoOutput(true); byte[] b = params.toString().getBytes(); url_con.getOutputStream().write(b, 0, b.length); url_con.getOutputStream().flush(); url_con.getOutputStream().close(); InputStream in = url_con.getInputStream(); BufferedReader rd = new BufferedReader(new InputStreamReader(in, getRequestEncoding())); String tempLine = rd.readLine(); StringBuffer temp = new StringBuffer(); String crlf = System.getProperty("line.separator"); while (tempLine != null) { temp.append(tempLine); temp.append(crlf); tempLine = rd.readLine(); } responseContent = temp.toString(); rd.close(); in.close(); } catch (IOException e) { System.err.println("网络故障"); e.printStackTrace(); } finally { if (url_con != null) { url_con.disconnect(); } } return responseContent; } /** * <pre> * 发送不带参数的GET的HTTP请求 * </pre> * * @param reqUrl * HTTP请求URL * @return HTTP响应的字符串 */ public static String doGet(String reqUrl) { HttpURLConnection url_con = null; String responseContent = null; try { StringBuffer params = new StringBuffer(); String queryUrl = reqUrl; URL url = new URL(queryUrl); url_con = (HttpURLConnection) url.openConnection(); url_con.setRequestMethod("GET"); // System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(HttpRequestProxy.connectTimeOut));// (单位:毫秒)jdk1.4换成这个,连接超时 // System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(HttpRequestProxy.readTimeOut)); // (单位:毫秒)jdk1.4换成这个,读操作超时 url_con.setConnectTimeout(getConnectTimeOut()); //(单位:毫秒)jdk 1.5换成这个,连接超时 url_con.setReadTimeout(getReadTimeOut()); //(单位:毫秒)jdk 1.5换成这个,读操作超时 url_con.setDoOutput(true); byte[] b = params.toString().getBytes(); url_con.getOutputStream().write(b, 0, b.length); url_con.getOutputStream().flush(); url_con.getOutputStream().close(); InputStream in = url_con.getInputStream(); BufferedReader rd = new BufferedReader(new InputStreamReader(in, getRequestEncoding())); String tempLine = rd.readLine(); StringBuffer temp = new StringBuffer(); String crlf = System.getProperty("line.separator"); while (tempLine != null) { temp.append(tempLine); temp.append(crlf); tempLine = rd.readLine(); } responseContent = temp.toString(); rd.close(); in.close(); } catch (IOException e) { System.err.println("网络故障"); e.printStackTrace(); } finally { if (url_con != null) { url_con.disconnect(); } } return responseContent; } /** * <pre> * 发送带参数的POST的HTTP请求 * </pre> * * @param reqUrl * HTTP请求URL * @param parameters * 参数映射表 * @return HTTP响应的字符串 */ public static String doPost(String reqUrl, Map parameters, String verifyString) { HttpURLConnection url_con = null; String responseContent = null; try { StringBuffer params = new StringBuffer(); for (Iterator iter = parameters.entrySet().iterator(); iter.hasNext();) { Entry element = (Entry) iter.next(); params.append(element.getKey().toString()); params.append("="); params.append(URLEncoder.encode(element.getValue().toString(), HttpRequestProxy.requestEncoding)); params.append("&"); } if (params.length() > 0) { params = params.deleteCharAt(params.length() - 1); } URL url = new URL(reqUrl); url_con = (HttpURLConnection) url.openConnection(); url_con.setRequestProperty("Authorization", verifyString); url_con.setRequestMethod("POST"); // System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(HttpRequestProxy.connectTimeOut)); // (单位:毫秒)jdk1.4换成这个,连接超时 // System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(HttpRequestProxy.readTimeOut)); // (单位:毫秒)jdk1.4换成这个,读操作超时 url_con.setConnectTimeout(getConnectTimeOut()); // (单位:毫秒)jdk1.5换成这个,连接超时 url_con.setReadTimeout(getReadTimeOut()); // (单位:毫秒)jdk 1.5换成这个,读操作超时 url_con.setDoOutput(true); byte[] b = params.toString().getBytes(); url_con.getOutputStream().write(b, 0, b.length); url_con.getOutputStream().flush(); url_con.getOutputStream().close(); InputStream in = url_con.getInputStream(); BufferedReader rd = new BufferedReader(new InputStreamReader(in, getRequestEncoding())); String tempLine = rd.readLine(); StringBuffer tempStr = new StringBuffer(); String crlf = System.getProperty("line.separator"); while (tempLine != null) { tempStr.append(tempLine); tempStr.append(crlf); tempLine = rd.readLine(); } responseContent = tempStr.toString(); rd.close(); in.close(); } catch (IOException e) { System.err.println("网络故障"); e.printStackTrace(); } finally { if (url_con != null) { url_con.disconnect(); } } return responseContent; } public static String doPost(String reqUrl, Map parameters) { HttpURLConnection url_con = null; String responseContent = null; try { StringBuffer params = new StringBuffer(); for (Iterator iter = parameters.entrySet().iterator(); iter.hasNext();) { Entry element = (Entry) iter.next(); params.append(element.getKey().toString()); params.append("="); params.append(URLEncoder.encode(element.getValue().toString(), HttpRequestProxy.requestEncoding)); params.append("&"); } if (params.length() > 0) { params = params.deleteCharAt(params.length() - 1); } URL url = new URL(reqUrl); url_con = (HttpURLConnection) url.openConnection(); url_con.setRequestMethod("POST"); // System.setProperty("sun.net.client.defaultConnectTimeout", String.valueOf(HttpRequestProxy.connectTimeOut)); // (单位:毫秒)jdk1.4换成这个,连接超时 // System.setProperty("sun.net.client.defaultReadTimeout", String.valueOf(HttpRequestProxy.readTimeOut)); // (单位:毫秒)jdk1.4换成这个,读操作超时 url_con.setConnectTimeout(getConnectTimeOut()); // (单位:毫秒)jdk1.5换成这个,连接超时 url_con.setReadTimeout(getConnectTimeOut()); // (单位:毫秒)jdk 1.5换成这个,读操作超时 url_con.setDoOutput(true); byte[] b = params.toString().getBytes(); url_con.getOutputStream().write(b, 0, b.length); url_con.getOutputStream().flush(); url_con.getOutputStream().close(); InputStream in = url_con.getInputStream(); BufferedReader rd = new BufferedReader(new InputStreamReader(in, getRequestEncoding())); String tempLine = rd.readLine(); StringBuffer tempStr = new StringBuffer(); String crlf = System.getProperty("line.separator"); while (tempLine != null) { tempStr.append(tempLine); tempStr.append(crlf); tempLine = rd.readLine(); } responseContent = tempStr.toString(); rd.close(); in.close(); } catch (IOException e) { System.err.println("网络故障"); e.printStackTrace(); } finally { if (url_con != null) { url_con.disconnect(); } } return responseContent; } /** * @return 连接超时(毫秒) * @see com.hengpeng.common.web.HttpRequestProxy#connectTimeOut */ public static int getConnectTimeOut() { return HttpRequestProxy.connectTimeOut; } /** * @return 读取数据超时(毫秒) * @see com.hengpeng.common.web.HttpRequestProxy#readTimeOut */ public static int getReadTimeOut() { return HttpRequestProxy.readTimeOut; } /** * @return 请求编码 * @see com.hengpeng.common.web.HttpRequestProxy#requestEncoding */ public static String getRequestEncoding() { return requestEncoding; } /** * @param connectTimeOut * 连接超时(毫秒) * @see com.hengpeng.common.web.HttpRequestProxy#connectTimeOut */ public static void setConnectTimeOut(int connectTimeOut) { HttpRequestProxy.connectTimeOut = connectTimeOut; } /** * @param readTimeOut * 读取数据超时(毫秒) * @see com.hengpeng.common.web.HttpRequestProxy#readTimeOut */ public static void setReadTimeOut(int readTimeOut) { HttpRequestProxy.readTimeOut = readTimeOut; } /** * @param requestEncoding * 请求编码 * @see com.hengpeng.common.web.HttpRequestProxy#requestEncoding */ public static void setRequestEncoding(String requestEncoding) { HttpRequestProxy.requestEncoding = requestEncoding; } private static class Tester { public static void main(String[] args) { Map map = new HashMap(); map.put("sxtid", "1109160001"); String temp = HttpRequestProxy.doGet("http://61.147.68.123:7001/GetVideoAddressHandler?sxtid=1109160001", map); System.out.println("返回的消息是:" + temp); temp = HttpRequestProxy.doGet("http://61.147.68.123:7001/GetVideoAddressHandler?sxtid=1109160001"); System.out.println("返回的消息是:" + temp); } } }
详细解决方案
Http请求测试种
热度:296 发布时间:2013-10-10 14:14:51.0
相关解决方案
- struts HTTP Status 500解决办法
- httpclient老是提示java.lang.NoSuchMethodError: org.apache.http.protocol.BasicHttpCon
- 启动tomcat后,http://localhost:8080无法打开的有关问题
- 相干tomcat HTTP Status 500的疑问,麻烦大家进来看看
- Web Service 错误:服务器未能识别 HTTP 头 SOAPAction 的值: http://tempuri.org/
- HTTP Status 404 - /jspdemo/Register.jsp,该怎么解决
- 'http://reg.163.com/login.jsp?type=1&url=http://entry.mail.163.com/coremail/fcg/,该如何处理
- org.apache.http.client.HttpClient与org.apache.commons.httpclient.HttpClient的差别
- HTTP 404有关问题
- myeclipse<%@ taglib prefix="c" uri="http://java.sun.com/jst1/core_rt"%>解决思路
- ,http 200状态码
- tomcat新手有关问题 HTTP Status 404 - /manager/
- java http 分段上载
- soap调用webservice,报错:Root element of a SOAP message must be: 'http://schemas.xmls,该怎么处理
- HTTP Status 404如何解决
- org.apache.tomcat.util.http.Parameters processParameters,该怎么解决
- 新手,HTTP Status 404 有关问题
- java http 断点上传,该如何处理
- JSP疑问<%@ taglib prefix="ht" uri="http://www.ht.com.cn/jsp/taglibs"%>该怎么处理
- weservice调用Server returned HTTP response code: 500 for URL解决方法
- HTTP Status 404 - /webproject2/servlet/login解决办法
- 报错:HTTP Status 405 - HTTP method GET is not supported by this URL解决思路
- http://newbbs.csdn.net/ 现时和老版的bbs用的还不是同一个库
- http://newbbs.csdn.net/ 现下和老版的bbs用的还不是同一个库
- Java.io.IOException: error 3 during http over WSP 这个是什么东东
- http://sourceforge.net这个网站是什么啊解决方案
- http 传送数据 每个包有大小限制码?解决办法
- Server returned HTTP response code: 403 for URL如何解决
- http://www.java-home.com重新下线,诚邀您的加入
- httpClient 错误 The server failed to respond with a valid HTTP response