前言
目前主流的JAVA web 的HTTP服务主要是 springMVC和Struts2,更早的有JSP/servlet。
在学习Netty的时候,发现Netty 也可以作HTTP服务,于是便将此整理一篇博文,分享给大家。
开发准备
添加配置
将Netty作为HTTP服务,需要在过滤器中添加HttpRequest之类的配置,如:
|
|
基本配置和之前的客户端和服务端通信Demo几乎一样,就是在业务处理器中略微的修改下业务逻辑处理就可以了。
HTTP GET请求测试
那么进行测试。
首先启动Netty服务,然后使用HTTP GET 方式测试(直接在浏览器上输入http://localhost:6789/test)
结果如下:
HTTP服务准备
一般来说,使用HttpRequest 类作为请求,但是该类中没有获取消息体的方法,获取消息体的类为HttpContent 或LastHttpContent,这样获取请求和消息体则相当不对不方便。
在查阅Netty相关资料后,发现这样一个请求类,可以完成上述所提的要求。这个类就是FullHttpRequest。
查看该类源码,可以发现该类继承HttpRequest, FullHttpMessage,而FullHttpMessage又继承LastHttpContent, 而LastHttpContent又继承HttpContent,所以该类可以实现上述要求。
源码示例图:
那么代码修改如下:
|
|
然后测试POST、PUT和DELETE请求并使用json格式传输。
我们可以通过postman等工具来直接调用,就不用写相关请求代码了
可以看见,Netty 作为HTTP服务可以接受基本的请求。
完整的代码如下:
服务端:
|
|
服务端过滤器:
|
|
服务端业务逻辑
|
|
结语
那么Netty HTTP 服务的相关测试就到这了,如果有什么疑问,欢迎讨论!
该项目我放在github上了,有兴趣的可以看看!https://github.com/xuwujing/Netty
版权声明:
作者:虚无境
博客园出处:http://www.cnblogs.com/xuwujing
CSDN出处:http://blog.csdn.net/qazwsxpcm
个人博客出处:http://www.panchengming.com
原创不易,转载请标明出处,谢谢!