网页提交表单数据,涉及到一系列请求参数。GET请求的参数,是通过URL传递的,通常以“?key1=value1&key2=value2”的形式进行传递。 POST请求的参数,通常是放在POST请求的消息体中,格式一般为JSON。例如,在某快递网站中输入快递单号查询快递信息,通过网络抓包获取的请求信息如下图所示,请求的方法为POST,提交的参数有2个。 请求地址:https://www.kuaidi100.com/autonumber/autoComNum。 快递单号:73123917441103。 抓包获得的参数:resultv2:1 text:73123917441103。 Jsoup主要提供了以下3种提交请求参数的方法。
//程序3-5 public class JsoupConnectParameter { public static void main(String[] args) throws IOException { Connection connect = Jsoup.connect("https://www.kuaidi100.com/autonumber/autoComNum"); //添加参数 connect.data("resultv2","1").data("text", "73123917441103"); Connection.Response response = connect.method(Connection.Method.POST).ignoreContentType(true).execute(); //获取数据,处理成HTML Document document = response.parse(); System.out.println(document); } } //程序3-6 public class JsoupConnectParameter { public static void main(String[] args) throws IOException { Connection connect = Jsoup.connect("https://www.kuaidi100.com/autonumber/autoComNum"); //添加参数 Map<String, String> data = new HashMap<String, String>(); data.put("resultv2", "1"); data.put("text", "73123917441103"); //获取响应 Connection.Response response = connect.data(data).method(Connection.Method.POST).ignoreContentType(true).execute(); //获取数据,处理成HTML Document document = response.parse(); System.out.println(document); } } //程序3-7 public class JsoupConnectParameter { public static void main(String[] args) throws IOException { Connection connect = Jsoup.connect("https://www.kuaidi100.com/autonumber/autoComNum"); //添加参数 connect.data("resultv2", "1", "text", "73123917441103"); Connection.Response response = connect.method(Connection.Method.POST).ignoreContentType(true).execute(); //获取数据,处理成HTML Document document = response.parse(); System.out.println(document); } }上述3个程序的运行结果如下图所示。