smart-http 1.1.0 发布,可编程的 Http 应用微内核

栏目: 软件资讯 · 发布时间: 5年前

内容简介:smart-http 是一款比较简易的 http 服务器,其通信内核采用了 smart-socket 最新版v1.5.5。 smart-http 是一款可编程的 Http 应用微内核,用户可根据自身需求进行 Server 或 Client 的应用开发。 你可以基于它开发...

smart-http 是一款比较简易的 http 服务器,其通信内核采用了 smart-socket 最新版v1.5.5

smart-http 是一款可编程的 Http 应用微内核,用户可根据自身需求进行  Server  或  Client  的应用开发。

你可以基于它开发 HTTP 代理服务器、网关、静态服务器、http  client 工具、性能压测 工具 等。smart-http 依旧延续着作者一贯秉持的极简、易用、高性能风格,只提供高性能的运行能力和易用的接口设计。把更多的可能性交给开发者,由那些富有创造力的 Java 开发者打造更优秀的 Http 作品。

从 v1.1.0 开始,smart-http 正式迈入 Http Client 领域。凭借着过去 2 年在 Server 端积累的经验,Client 端的开发过程比较顺利,先推出首个可运行版供大家体验。在这个假期会抽些时间再作一些优化,争取早日运用到实际场景中。

更新内容

  1. 工程模块拆分,现分为:smart-http-common、smart-http-server、smart-http-client 三个模块。
  2. 优化:StaticResourceHandle处理的返回结果缺少content-length头信息。【I16KE7】
  3. 新特性:支持 Http Client 开发。
    • 默认协议 http/1.1,暂不支持 websocket client。
    • 支持 get 请求提交。
    • 支持 content-length、chunked 两种响应解析方式。
    • 支持自定义 Http Header

使用示例

1. Server 端

public class SimpleSmartHttp {
    public static void main(String[] args) {
        HttpBootstrap bootstrap = new HttpBootstrap();
        // 普通http请求
        bootstrap.pipeline().next(new HttpHandle() {
            @Override
            public void doHandle(HttpRequest request, HttpResponse response) throws IOException {
                response.write("hello world<br/>".getBytes());
            }
        });
        // websocket请求
        bootstrap.wsPipeline().next(new WebSocketDefaultHandle() {
            @Override
            public void handleTextMessage(WebSocketRequest request, WebSocketResponse response, String data) {
                response.sendTextMessage("Hello World");
            }
        });
        bootstrap.setPort(8080).start();
    }
}

2. Client 端

public class HttpGetDemo {
    public static void main(String[] args) {
        HttpClient httpClient = new HttpClient("www.baidu.com", 80);
        httpClient.connect();
        httpClient.get("/")
                .onSuccess(response -> System.out.println(response.body()))
                .onFailure(Throwable::printStackTrace)
                .send();
    }
}

最后

如果觉得这个项目还不错,请给我们加个 Star。并且非常欢迎大家为这个项目贡献你的想法和代码,开源不易,且行且珍惜。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

复盘

复盘

陈中 / 机械工业出版社 / 2013-7-23 / 29

复盘是围棋中的一种学习方法,指的是在写完一盘棋之后,要重新摆一遍,看看哪里下得好,哪里下得不好,对下得好和不好的,都要进行分析和推演。 柳传志第一个将复盘引入到做事之中,成为联想三大方法论之一,在联想每一个重大决策的背后,都有复盘的身影。 本书完整系统讲述了复盘的内容,清晰了复盘的价值,给出了复盘的操作步骤,我们可以在自己的工作生活中,应用复盘的方法,向自己学习,随时随地的提高自己,把......一起来看看 《复盘》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具