Jodd HTTP的使用
一个简单的Get请求
HttpRequest httpRequest = HttpRequest.get("http://jodd.org");
HttpResponse response = httpRequest.send();
//更简洁的一种写法 HttpResponse response = HttpRequest.get("http://jodd.org").send();
System.out.println(response);
输出结果如下:
//下面是响应头信息
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=0, public
Connection: close
Content-Length: 15441
Content-Type: text/html; charset=utf-8
Date: Mon, 04 Jul 2016 14:26:08 GMT
Expires: Mon, 04 Jul 2016 14:26:08 GMT
Last-Modified: Thu, 24 Mar 2016 23:05:05 GMT
Server: nginx/1.10.1
Vary: Accept-Encoding<!DOCTYPE html>
<html>
......
</html>
//省略部分是访问页面的HTML页面
较为复杂一点的get请求:
HttpRequest request = new HttpRequest();
request.method("GET")//get请求.protocol("http")//协议使用http.host("jodd.org")//主机地址.port(80)//端口,没有写默认是80.path("/api/jsonws/user/get-user-by-id");//访问路径
HttpResponse对象中有下面三个方法:
body() - 返回ISO-8859-1编码的response返回体(上面的访问对应的是jodd的html源码)
bodyText() - 返回与响应头中相应编码的response返回体
bodyBytes() - 返回返回体的字节码
参数
//get访问中直接在URL中传递参数
HttpResponse response = HttpRequest.get("http://srv:8080/api/jsonws/user/get-user-by-id?userId=10194").send();
//调用方法的方式传递参数
HttpResponse response = HttpRequest.get("http://srv:8080/api/jsonws/user/get-user-by-id").query("userId", "10194").send();
//或者创建request对象后用以下map的方式传递参数
Map<String, Object[]> httpParams = request.query();
httpParams.put("userId", new String[] {"10194"});
基本的用户认证请求
request.basicAuthentication("test", "test");//是不是很方便啊
POST请求
HttpResponse response = HttpRequest.post("http://srv:8080/api/jsonws/user/get-user-by-id").form("userId", "10194")//这里与get的参数传递方式不同.send();
上传文件
HttpRequest httpRequest = HttpRequest.post("http://srv:8080/api/jsonws/dlapp/add-file-entry").form("repositoryId", "10178","folderId", "11219","sourceFileName", "a.zip","mimeType", "application/zip","title", "test","description", "Upload test","changeLog", "testing...","file",new File("d:\\a.jpg.zip"));
HttpResponse httpResponse = httpRequest.send();
还可以设置回调方法监听上传的进度等:
HttpResponse response = HttpRequest.post("http://localhost:8081/hello").form("file", file).monitor(new HttpProgressListener() {//监听上传的进度@Overridepublic void transferred(long len) {System.out.println(len/size);}}).send();
请求头等信息的设置 HttpRequest中提供了header的多种不同方法签名的传递header的方法,还提供headers使用map传递header的方法使用起来十分方便。 此为还提供contentType、cookie的等方法操作相关内容【具体可以看HttpRequest的API】
GZIP
有些网站使用了GZIP压缩技术,这就要求获得请求的时候使用GZIP解压才能获得数据,jodd提供了相关的支持而且使用十分简单:
HttpResponse response = HttpRequest.get("http://www.liferay.com").acceptEncoding("gzip").send();System.out.println(response.unzip());
body
HttpResponse response = HttpRequest.get("http://srv:8080/api/jsonws/invoke").body("{'$user[userId, screenName] = /user/get-user-by-id' : {'userId':'10194'}}").basicAuthentication("test", "test").send();
编码设置
HttpResponse response = HttpRequest.get("http://server/index.html").queryEncoding("CP1251").query("param", "value").send();
Soket连接
HttpRequest request = HttpRequest.get()...;
request.open();
SocketHttpConnection httpConnection =(SocketHttpConnection) request.httpConnection();
Socket socket = httpConnection.getSocket();
socket.setSoTimeout(1000);
...
HttpResponse response = request.send();
长连接
HttpRequest request = HttpRequest.get("http://jodd.org");HttpResponse response = request.connectionKeepAlive(true).send();// next requestrequest = HttpRequest.get("http://jodd.org/jodd.css");response = request.keepAlive(response, true).send();...// last requestrequest = HttpRequest.get("http://jodd.org/jodd.png");response = request.keepAlive(response, false).send();// optionally//response.close();
Jodd HTTP的使用相关推荐
- java jodd 框架中发送email
2019独角兽企业重金招聘Python工程师标准>>> 用jodd发送电子邮件: 这里用QQ和126的邮箱进行测试,首先保证你的邮箱服务器已经开通了smtp的服务,一般在设置里面,比 ...
- 使用Jodd简化邮件服务的开发
最近需要做一个邮件相关的功能,考虑到自建邮件服务器维护起来比较麻烦,于是选择第三方邮件服务.邮件发送服务的对比可以看这篇文章. 最后我选择了: sendCloud mailgun sendCloud向 ...
- jodd忽略ssl证书_Jodd - Java界的瑞士军刀,无法想象的轻量级工具包
Jodd介绍 Jodd是对于Java开发更便捷的开源迷你框架,包含工具类.实用功能的集合,总包体积不到1.7M. Jodd构建于通用场景使开发变得简单,但Jodd并不简单!它能让你把事情做得更好,实现 ...
- Jodd - Java界的瑞士军刀轻量级工具包
转载自 Jodd - Java界的瑞士军刀轻量级工具包! Jodd介绍 Jodd是对于Java开发更便捷的开源迷你框架,包含工具类.实用功能的集合,总包体积不到1.7M. Jodd构建于通用场景使开发 ...
- java jodd框架介绍及使用示例
Jodd是一个普通开源Java包.你可以把Jodd想象成Java的"瑞士军刀",不仅小,锋利而且包含许多便利的功能.Jodd 提供的功能有: 提供操作Java bean, 可以从各 ...
- 小巧的本地缓存Jodd
小巧的本地缓存Jodd 说到缓存,大家容易想到memcached和redis,它们大名鼎鼎,但都是远程缓存,需要通过TCP网络访问. 这些缓存服务器本身性能很好,但不管性能再怎么好,也要通过网络访问, ...
- JODD与数据页面绑定
先列举一下我对JODD的基本了解: 1.估计国内大多数知道JODD的JSPer的都是"惊其艳"于SpringSide1: 2.JODD里面其实有很多工具,不过大家最多还是用它来 ...
- jodd发送http请求(util)
1.jodd maven坐标: <!-- https://mvnrepository.com/artifact/org.jodd/jodd-http --> <dependency& ...
- 使用 jodd:form tag
在 SpringSide 里翻到一个好东西: jodd:form " Jodd Form的使用极其简单,因为太简单了,才会名不见经传而被我们选用,让我们罔顾各大Framework的Form ...
最新文章
- python 状态码转字典文本_python爬虫 处理521状态码
- 如何快速编写并运行Tiny模板语言?
- 十大司机如厕友好城市出炉:苏州/杭州/成都位居前三
- UI实用|素材APP启动图标设计模板
- Spring Boot学习总结(26)—— Spring Boot 容器启动详解
- 分析mysql慢查询_mysql慢查询的分析方法_MySQL
- 程序猿常识--OJ系统和ACM测试考试大全
- 【实用数学手册(第2版)扫描版.pdf】和【免安装Matlab.7.0.绿色破解U盘便携移...】 百度网盘下载地址
- 个人网站Timonj(Personal website)
- 百度(杭州)创新中心人工智能产业论坛落幕,看AI如何引发行业革命
- 笔记本电脑怎么用U盘装系统
- 我所理解的闭包是酱紫的
- recap 360.html,Autodesk工程扫描数据软件ReCap 360 Pro 2018 R2 Win
- 单击Artwork时没有弹窗的问题
- 苹果手机php如何解压,在PHP中使用gzcompress;需要能够在iPhone上解压缩
- 并行计算综述————第一章 并行计算硬件平台:并行计算机
- 使用JQuery删除html页面中的元素
- .net开发过程中,错误集锦
- vue中的project和inject
- python适合女生吗-女生学数据分析好吗?数据分析适不适合女生学?