Jsoup http请求
背景
小编相信编写过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();
}
}
结束了。