请求html源文档 get,Jsoup发送get和post请求

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

1、jsoup的主要功能如下:

1. 从一个URL,文件或字符串中解析HTML;

2. 使用DOM或CSS选择器来查找、取出数据;

3. 可操作HTML元素、属性、文本;

jsoup是基于MIT协议发布的,可放心使用于商业项目。

2、jsoup包

1.所使用到的jar包:jsoup-*.jar

org.jsoup

jsoup

1.8.3

get请求

1、jsoup模拟get请求还是很简单的,这里使用它,目的就是来做接口自动化测试,代码既简洁又简单。

参数中有cookie的目的就是适合所有cookie请求,请求中有cookie的传入cookie值,没有的传入空值即可。

0818b9ca8b590ca3270a3433284dd417.png

public static String httpGet(String url,String cookie) throwsIOException{//获取请求连接

Connection con =Jsoup.connect(url);//请求头设置,特别是cookie设置

con.header("Accept", "text/html, application/xhtml+xml, */*");

con.header("Content-Type", "application/x-www-form-urlencoded");

con.header("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0))");

con.header("Cookie", cookie);//解析请求结果

Document doc=con.get();//获取标题

System.out.println(doc.title());     //返回内容returndoc.toString();

}

0818b9ca8b590ca3270a3433284dd417.png

2、其中get请求参数中,还可以通过另一种方式:

//获取请求连接

Connection conn = Jsoup.connect("http://www.cnblogs.com/zhangfei/p/");//请求参数设置

conn.data("page","3");//获取请求结果

Document doc = conn.get();

3、在发送请求中,我们不光只想获取响应内容,还想获取头信息或者cookie值,例如:在登陆中,我们获取登陆cookie值,那么我们可以在以后一定时间内发送请求,带上cookie值,就可以绕过登陆,不用重新登陆。

要取得cookies,必须要有个Response的对象,所以,要用execute方法,如果直接用post方面,返回的则是Document对象,但在用execute方法时,要事先调用一下method方法设定好请求方式即可。

获取get请求后指定头文件名称的值方法:

0818b9ca8b590ca3270a3433284dd417.png

public static String httpGetHeader(String url,String cook,String header) throwsIOException{//获取请求连接

Connection con =Jsoup.connect(url);//请求头设置,特别是cookie设置

con.header("Accept", "text/html, application/xhtml+xml, */*");

con.header("Content-Type", "application/x-www-form-urlencoded");

con.header("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0))");

con.header("Cookie", cook);//发送请求

Response resp=con.method(Method.GET).execute();//获取cookie名称为__bsi的值

String cookieValue = resp.cookie("__bsi");

System.out.println("cookie __bsi值: "+cookieValue);//获取返回cookie所值

Map cookies =resp.cookies();

System.out.println("所有cookie值: "+cookies);//获取返回头文件值

String headerValue =resp.header(header);

System.out.println("头文件"+header+"的值:"+headerValue);//获取所有头文件值

Map headersOne =resp.headers();

System.out.println("所有头文件值:"+headersOne);returnheaderValue;

}

0818b9ca8b590ca3270a3433284dd417.png

post请求

1、使用jsoup模拟post请求返回body:

0818b9ca8b590ca3270a3433284dd417.png

public static String httpPost(String url,Map map,String cookie) throwsIOException{//获取请求连接

Connection con =Jsoup.connect(url);//遍历生成参数

if(map!=null){for (Entryentry : map.entrySet()) {//添加参数

con.data(entry.getKey(), entry.getValue());

}

}//插入cookie(头文件形式)

con.header("Cookie", cookie);

Document doc=con.post();

System.out.println(doc);returndoc.toString();

}

0818b9ca8b590ca3270a3433284dd417.png

2、发送post请求获取cookie值获取headers与get类似:

//发送请求

Response resp=con.method(Method.POST).execute();//获取cookie名称为__bsi的值

String cookieValue =resp.cookie(header);

System.out.println(cookieValue);

2、源代码链接

参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值