Jsoup系列学习(1)-发送get或post请求
简介
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
官网:http://www.open-open.com/jsoup/parsing-a-document.htm
1、jsoup的主要功能如下:
2、jsoup包
<!-- jsoup包依赖 -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.8.3</version>
</dependency>
get请求
public static String httpGet(String url,String cookie) throws IOException{
//获取请求连接
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());
//返回内容
return doc.toString();
}
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请求后指定头文件名称的值方法:
public static String httpGetHeader(String url,String cook,String header) throws IOException{
//获取请求连接
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<String,String> cookies = resp.cookies();
System.out.println("所有cookie值: "+cookies);
//获取返回头文件值
String headerValue = resp.header(header);
System.out.println("头文件"+header+"的值:"+headerValue);
//获取所有头文件值
Map<String,String> headersOne =resp.headers();
System.out.println("所有头文件值:"+headersOne);
return headerValue;
}
post请求
1、使用jsoup模拟post请求返回body:
public static String httpPost(String url,Map<String,String> map,String cookie) throws IOException{
//获取请求连接
Connection con = Jsoup.connect(url);
//遍历生成参数
if(map!=null){
for (Entry<String, String> entry : map.entrySet()) {
//添加参数
con.data(entry.getKey(), entry.getValue());
}
}
//插入cookie(头文件形式)
con.header("Cookie", cookie);
Document doc = con.post();
System.out.println(doc);
return doc.toString();
}
2、发送post请求获取cookie值获取headers与get类似:
//发送请求
Response resp=con.method(Method.POST).execute();
//获取cookie名称为__bsi的值
String cookieValue = resp.cookie(header);
System.out.println(cookieValue);
2、源代码链接
参考
1、jsoup实现爬虫网络:http://blog.csdn.net/column/details/jsoup.html
2、Jsoup做接口测试:http://www.cnblogs.com/zhangfei/p/4359408.html
Jsoup系列学习(1)-发送get或post请求的更多相关文章
- [转]利用URLConnection来发送POST和GET请求
URL的openConnection()方法将返回一个URLConnection对象,该对象表示应用程序和 URL 之间的通信链接.程序可以通过URLConnection实例向该URL发送请求.读取U ...
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
通用辅助类 下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需 要获取认证信息(如Cookie),所以返回的是HttpWeb ...
- (转) 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
转自:http://blog.csdn.net/zhoufoxcn/article/details/6404236 通用辅助类 下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中 ...
- iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
iOS开发网络篇—发送GET和POST请求(使用NSURLSession) 说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConn ...
- Ajax详解及其案例分析------如何获得Ajax对象,使用Ajax对象发送GET和POST请求,校验用户名,POST和GET请求时的乱码处理,实现级联的下拉列表
本节主要内容预览: 1 获得Ajax对象 2 使用Ajax对象发送GET请求 3 使用Ajax对象发送POST请求 4 使用Ajax校验用户名 5 POST请求时的乱码处理 6 GET请求时的乱码处理 ...
- php 利用socket发送GET,POST请求
作为php程序员一定会接触http协议,也只有深入了解http协议,编程水平才会更进一步.最近我一直在学习php的关于http的编程,许多东西恍然大悟,受益匪浅.希望分享给大家.本文需要有一定http ...
- 【转】在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
http://zhoufoxcn.blog.51cto.com/792419/561934 这个需求来自于我最近练手的一个项目,在项目中我需要将一些自己发表的和收藏整理的网文集中到一个地方存放,如果全 ...
- python用httplib模块发送get和post请求
在python中,模拟http客户端发送get和post请求,主要用httplib模块的功能. 1.python发送GET请求 我在本地建立一个测试环境,test.php的内容就是输出一句话: 1 e ...
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求【转载】
标签:C# HTTPS HttpWebRequest HTTP HttpWebResponse 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. ...
随机推荐
- 原创:CSS3技术-雪碧图自适应缩放与精灵动画方案
花了一个礼拜完成了慕课网定制的七夕主题效果,其中有一个没实现好的功能,就是雪碧图的自适应缩放 ps: 以下实现都是基于移动端的处理 原图如下: 人物是采用的是雪碧图,通过坐标绝对数据取值 问题很明显, ...
- ASP.NET Core的配置(5):配置的同步[设计篇]
本节所谓的"配置同步"主要体现在两个方面:其一,如何监控配置源并在其变化的时候自动加载其数据,其目的是让应用中通过Configuration对象承载的配置与配置源的数据同步:其二. ...
- Oracle数据加载之sqlldr工具的介绍
环境: 服务端:RHEL6.4 + Oracle 11.2.0.4 客户端:WIN10 + Oracle 11.2.0.1 client 目录: sqlldr语法 sqlldr实验准备 sqlldr常 ...
- 移动开发那些坑之——safari mobile click事件的冒泡bug
今天在iphone6 plus的safari上测试这么一段代码: <script> $(document).on('click','.callApp', function() { aler ...
- Windows Live Writer 在线安装失败的解决方法。
这里提供一种解决方法:下载离线安装包,我这个版本是2011的.大家有兴趣的话可以下载一下: http://wl.dlservice.microsoft.com/download/8/3/D/83D75 ...
- 安装完成后在命令行运行bash时报错0x80070057
在命令运行bash 提示如下: 解决方法,不启用旧版本控制台: 右键命令提示栏 打开属性,把勾选去掉如下图红色边框标识: 然后重启,就可以使用,也包括可以打开Bash on Unbuntu on Wi ...
- html中,文件上传时使用的<input type="file">的样式自定义
Web页面中,在需要上传文件时基本都会用到<input type="file">元素,它的默认样式: chrome下: IE下: 不管是上面哪种,样式都比较简单,和很多 ...
- 桌面秀:以ubuntu主为的开发桌面环境
桌面系统是xubuntu,字体经过美化的(也就是复制了windows7下的微软字体) 可以看到字体效果与vmware下的win7差距已经很小了,略差一点,在可以接受的范围内了. 上图右边的firefo ...
- SpringMVC 入门
MVC 简介 1.MVC 是一种架构模式 程序分层,分工合作,既相互独立,又协同工作,分为三层:模型层.视图层和控制层 2.MVC 是一种思考方式 View:视图层,为用户提供UI,重点关注数据的呈现 ...
- python generator next send
*******oi********oi********oi 上面 * 符号 代表 一系列的代码, oi 代表 一个 [yield]关键字引出的 [数据交换,称之为 oi ] 在一个有[yield] ...