Java开发
Jsoup的使用教程(3)-提交请求参数和超时设置
2025-01-22 30 0
简介 Jsoup的使用教程(3)-提交请求参数和超时设置
一、参数的提交
网页提交表单数据,涉及一系列请求参数。GET 请求的参数,是通过 URL 传递 的,通常以“?key1=value1&key2=value2”的形式进行传递。POST 请求的参数,通常 是放在 POST 请求的消息体中,格式一般为 JSON。
Jsoup 提供了 5 种添加请求参数的方法,如下所示。
1. Connection data(String key, String value);
2. Connection data(String... keyvals);
3. Connection data(Map<String, String> data);
4. Connection data(String key, String filename, InputStream inputStream);
5. Connection data(String key, String filename, InputStream inputStream, String contentType);
6. Connection data(Collection<KeyVal> data);
在这 5 种方法中,使用较多的是前 3 种方法。
//第一种方式
Connection connect = Jsoup.connect("http://www.*****.com/ems.php");
//添加参数
connect.data("wen","EH629625211CS").data("action", "ajax");
Connection.Response response = connect.method(Connection.Method.GET).ignoreContentType(true).execute();
//获取数据,转换成HTML格式
Document document = response.parse();
System.out.println(document);
//第二种方式
Connection connect = Jsoup.connect("http://www.*****.com/ems.php"); //添加参数
connect.data("wen", "EH629625211CS", "action", "ajax");
Connection.Response response = connect.method(Connection.Method.GET).ignoreContentType (true).execute();
//获取数据,转换成HTML格式
Document document = response.parse();
System.out.println(document);
//第三种方式
Connection connect = Jsoup.connect("http://www.*****.com/ems.php");
//添加参数
Map<String, String> data = new HashMap<String, String>();
data.put("wen", "EH629625211CS");
data.put("action", "ajax");
//获取响应
Connection.Response response = connect.data(data).method(Connection.Method.GET).ignoreContentType(true).execute();
//获取数据,转换成HTML格式
Document document = response.parse();
System.out.println(document);
二、超时设置
在网络异常情况下,可能会发生连接超时,进而导致程序僵死而不继续往下 执行。针对连接超时问题,Jsoup 在请求 URL 时,可以由用户自行设置毫秒级超时时间。如果不使用 timeout 方法设置超时时间,则超时时间默认为 30 毫秒。
public class TimeOutDemo {
public static void main(String[] args) throws IOException {
//基于 timeout 设置超时时间
Connection.Response response = Jsoup.connect("https://*******.com/")
.method(Connection.Method.GET).timeout(3*1000)
.execute();
Document document = Jsoup.connect("https://*******.com/")
.timeout(10*1000).get();
}
}