zoukankan      html  css  js  c++  java
  • Jsoup请求http或https返回json字符串工具类

     Jsoup请求http或https返回json字符串工具类

    所需要的jar包如下:

    jsoup-1.8.1.jar

    依赖jar包如下:

    httpclient-4.5.4.jar;
    httpclient-cache-4.5.4.jar;
    httpclient-win-4.5.4.jar;
    httpcore-4.4.8.jar;
    httpcore-ab-4.4.8.jar;
    httpcore-nio-4.4.8.jar;
    httpmime-4.5.4.jar;

    Jsoup返回json字符串工具类JsoupHelper.java:

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import java.util.Map.Entry;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;
    import org.jsoup.Connection;
    import org.jsoup.Connection.Response;
    import org.jsoup.Jsoup;
    
    public class JsoupHelper {
    
        /**
         * 获取连接
         * 
         * @param url
         *            请求url
         * @param params
         *            参数
         * @param charset
         *            参数编码方式
         * @param headers
         *            头部信息
         * @return
         */
        public static Connection getConnection(String url, Map<String, String> params, String charset,
                Map<String, String> headers) {
            if (params != null) {
                List<NameValuePair> paramList = new ArrayList<NameValuePair>();
                Iterator<Entry<String, String>> iter = params.entrySet().iterator();
                while (iter.hasNext()) {
                    Entry<String, String> entry = iter.next();
                    String key = entry.getKey();
                    String value = entry.getValue();
                    paramList.add(new BasicNameValuePair(key, value));
                }
                try {
                    String paramStr = EntityUtils.toString(new UrlEncodedFormEntity(paramList, charset));
                    StringBuffer sb = new StringBuffer();
                    sb.append(url);
                    if (url.indexOf("?") > 0) {
                        sb.append("&");
                    } else {
                        sb.append("?");
                    }
                    sb.append(paramStr);
                    url = sb.toString();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            Connection conn = Jsoup.connect(url);
            conn.timeout(10000); // 10秒超时
            conn.ignoreContentType(true);
    
            if (headers != null) {
                Iterator<Entry<String, String>> iter = headers.entrySet().iterator();
                while (iter.hasNext()) {
                    Entry<String, String> entry = iter.next();
                    String key = entry.getKey();
                    String value = entry.getValue();
                    conn.header(key, value);
                }
            }
            return conn;
        }
    
        public static String getJson(String url, Map<String, String> params, String charset,
                Map<String, String> headers) {
            String result = "";
            try {
                Connection conn = getConnection(url, params, charset, headers);
                Response response = conn.execute();
                result = response.body();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return result;
        }
    
    }

    调用代码:

    import java.util.HashMap;
    import java.util.Map;
    public class JsoupTest { public static Map<String, String> headers = null; static { headers = new HashMap<String, String>(); headers.put("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36"); headers.put("Accept-Language", "zh-CN,zh;q=0.8"); headers.put("Accept-Encoding", "gzip, deflate, sdch, br"); headers.put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"); headers.put("Connection", "Keep-Alive"); headers.put("Content-Type", "application/json;charset=UTF-8"); } public void test() { String url = "http://xxxxxx"; String content = JsoupHelper.get(url, null, "utf-8", headers); System.out.println("返回的json字符串:" + content); } }

    获取Json串后解析,获取key和value值,参考:http://www.cnblogs.com/lizm166/p/8078846.html

  • 相关阅读:
    排序算法的实现
    图——广度优先遍历(邻接矩阵存储)
    最大子列和问题-4种解法
    PATB 1015. 德才论 (25)
    PATB 1018. 锤子剪刀布
    PATB 1019. 数字黑洞 (20)
    常用协议的默认端口号
    统一资源定位符URL
    hdoj1009 FatMouse' Trade——贪心算法
    hdoj2037 贪心算法——今年暑假不AC
  • 原文地址:https://www.cnblogs.com/lizm166/p/8079118.html
Copyright © 2011-2022 走看看