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();
    }
}

点赞 0

我的名片

网名:梦宇信息技术

职业:软件开发、Mes系统工程师

现居:福建省-福州市

QQ:703159

站点信息

  • 联系QQ:703159
  • 文章统计97篇文章
  • 标签总数6
  • 加我微信:扫码,加我微信