欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

使用HttpURLConnect类模拟http请求的工具方法,httpurlconnect请求,package com.

来源: javaer 分享于  点击 11850 次 点评:46

使用HttpURLConnect类模拟http请求的工具方法,httpurlconnect请求,package com.


package com.sxit.phoenix.common;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;/** * @Title: http请求工具类 * @Description: * @Author:soap 肥皂 * @Since:2012-6-13 * @Version:1.1.0 */public class HttpPostUtils {    /**     * @Description: 发送http请求     * @param urlAddress 请求地址     * @param paramMap 请求参数     * @return     */    public static HtmlResponse httpPost(String urlAddress, Map<String, String> paramMap) {        if (paramMap == null) {            paramMap = new HashMap<String, String>();        }        String[] params = new String[paramMap.size()];        int i = 0;        for (String paramKey : paramMap.keySet()) {            String param = paramKey + "=" + paramMap.get(paramKey);            params[i] = param;            i++;        }        return httpPost(urlAddress, params, null);    }    /**     * @Description: 发送http请求     * @param urlAddress 请求地址     * @param paramMap 请求参数     * @param requestHeader 请求头     * @return     */    public static HtmlResponse httpPost(String urlAddress, Map<String, String> paramMap,Map<String, String> requestHeader) {        if (paramMap == null) {            paramMap = new HashMap<String, String>();        }        String[] params = new String[paramMap.size()];        int i = 0;        for (String paramKey : paramMap.keySet()) {            String param = paramKey + "=" + paramMap.get(paramKey);            params[i] = param;            i++;        }        return httpPost(urlAddress, params, requestHeader);    }    /**     *      * @Description:发送http请求     *     * @param urlAddress 请求地址     * @param paramList 请求参数     * @return     */    public static HtmlResponse httpPost(String urlAddress, List<String> paramList) {        if (paramList == null) {            paramList = new ArrayList<String>();        }        return httpPost(urlAddress, paramList.toArray(new String[0]), null);    }    /**     *      * @Description: 发送http请求     *     * @param urlAddress 请求地址     * @param params 请求参数     * @param requestHeader 请求头     * @return     */    public static HtmlResponse httpPost(String urlAddress, String[] params, Map<String, String> requestHeader) {        URL url = null;        HttpURLConnection con = null;        InputStream in = null;        StringBuffer result = new StringBuffer();        HtmlResponse resp = null;        try {            url = new URL(urlAddress);            con = (HttpURLConnection) url.openConnection();            con.setUseCaches(false);            con.setDoOutput(true);            con.setConnectTimeout(20000);  //连接主机的超时时间            con.setReadTimeout(20000); //从主机读取数据的超时时间            con.setRequestMethod("POST");            if (requestHeader != null) {                Set<String> keys = requestHeader.keySet();                for (Iterator<String> ite = keys.iterator(); ite.hasNext();) {                    String key = ite.next();                    String value = requestHeader.get(key);                    con.setRequestProperty(key, value);                }            }            String paramsTemp = "";             if(params!=null){                for (String param : params) {                    if (param != null && !"".equals(param.trim())) {                        paramsTemp += "&" + param;                    }                }            }            byte[] b = paramsTemp.getBytes();            con.getOutputStream().write(b, 0, b.length);            con.getOutputStream().flush();            con.getOutputStream().close();            in = con.getInputStream();            byte[] bytes = new byte[1024];            ByteArrayOutputStream  byteOutput = new ByteArrayOutputStream();            int idex = -1;            while ((idex = in.read(bytes)) !=-1) {                byteOutput.write(bytes, 0, idex);            }            bytes = byteOutput.toByteArray();            result.append(new String(bytes,"utf-8"));            resp = new HttpPostUtils.HtmlResponse();            resp.setResponseHeader(con.getHeaderFields());            resp.setResponseContent(result);            resp.setResponseByteContent(bytes);        } catch (Exception e) {            e.printStackTrace();            throw new RuntimeException(e);        } finally {            try {                if (in != null) {                    in.close();                }                if (con != null) {                    con.disconnect();                }            } catch (IOException e) {                e.printStackTrace();            }        }        return resp;    }    public static class HtmlResponse {        private Map<String, List<String>> responseHeader; // 响应头        private StringBuffer responseContent; // 响应内容(字符串格式)        private byte[] responseByteContent; // 响应内容(二进制格式的)        public Map<String, List<String>> getResponseHeader() {            return responseHeader;        }        public void setResponseHeader(Map<String, List<String>> responseHeader) {            this.responseHeader = responseHeader;        }        public StringBuffer getResponseContent() {            return responseContent;        }        public void setResponseContent(StringBuffer responseContent) {            this.responseContent = responseContent;        }        public byte[] getResponseByteContent() {            return responseByteContent;        }        public void setResponseByteContent(byte[] responseByteContent) {            this.responseByteContent = responseByteContent;        }    }    @SuppressWarnings({ "unchecked" })    public static void main(String[] args) {        Map<String, String> requestHeader = new HashMap<String, String>();        requestHeader.put("Cookie", "BIGipServerwz95598_pool=923777290.25627.0000; CSWEBSID=3hkyP8sXqZfFX1QQGYCgphyxy1wjBbBt!-1501419257");        requestHeader.put("Host", "www.cq95598.com.cn");        requestHeader.put("Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3");        requestHeader.put("Referer", "http://localhost:8081/pangolin/main.html#");        @SuppressWarnings("rawtypes")        Map params = new HashMap();        params.put("loginway", "01");        params.put("wusers.loginName", "herden");        params.put("wusers.pwd", "xxxx");        params.put("verifyWord", "9122");        HttpPostUtils.HtmlResponse resp =  HttpPostUtils.httpPost("http://www.cq95598.com.cn/wusersAction!getMSUserInfo.cs?CSWEBSID=3hkyP8sXqZfFX1QQGYCgphyxy1wjBbBt!-1501419257", params, requestHeader);        System.out.println("响应头:"+resp.getResponseHeader());        System.out.println("响应内容:"+resp.getResponseContent());        System.out.println("==================================================");        System.out.println("响应内容长度:"+resp.getResponseByteContent().length);    }}//该片段来自于http://byrx.net
相关栏目:

用户点评