Jsoup http請求

pcaddos發表於2019-02-01

背景   

   小編相信編寫過Java爬蟲的人對 Jsoup 絕對不會陌生的。對於他的html 解析的優越功能就不闡述了。這次所要講的就是jsoup 的另一個應用 傳送http請求。

小編以前遇到過一個問題,一個工程所佈置的主機不能訪問外網,但是當時的資料必須需要訪問阿里線上api 。Java 程式碼如何能做到這點了。當然方法很多,這裡我就用到了 jsoup。

詳細介紹:

      pom.xml依賴

<dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.9.2</version>
 </dependency>

   java 程式碼如下

import org.jsoup.Connection;
import org.jsoup.Jsoup;
public class JsoupUtil {
    public static final String USER_AGENT = "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) 
    Version/9.0 Mobile/13B143 Safari/601.1";
    public static final int TIME_OUT = 30000;
    private static Logger log = LoggerFactory.getLogger(JsoupUtil.class);
    private static final String proxy_ip = "ip";
    private static final String proxy_port ="port";


    public static String sendPost(String url, Map params) {
        log.info("請求的url------:{}", url);
        Connection con = Jsoup.connect(url)
                .userAgent(USER_AGENT)
                .timeout(TIME_OUT)
                .method(Connection.Method.POST)
                .ignoreContentType(true);
         con.proxy(proxy_ip, Integer.parseInt(proxy_port));
         con.data(params);
        
        Connection.Response rs = null;
        try {
            rs = con.execute();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return rs.body();
    }

    public static String sendGet(String url) {
        log.info("請求的url-----:{}", url);
        Connection conn = Jsoup.connect(url)
                .userAgent(USER_AGENT)
                .timeout(TIME_OUT)
                .method(Connection.Method.GET)
                .ignoreContentType(true);
        conn.proxy(proxy_ip, Integer.parseInt(proxy_port));
        Connection.Response rs = null;
        try {
            rs = conn.execute();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return rs.body();
    }
}

  結束了。

相關文章