使用Reactor Netty HTTP Client时如何获取HTTP响应正文和状态

芬莱·韦伯

我现在用的反应堆Netty的HTTP客户端在这里作为一个独立的依赖,也就是不通过spring-webflux,因为我不想在春节相关的依赖拖累

从文档中可以看出,可以返回一个请求 HttpClientResponse

import reactor.netty.http.client.HttpClient;
import reactor.netty.http.client.HttpClientResponse;

public class Application {

    public static void main(String[] args) {
        HttpClientResponse response =
                HttpClient.create()                   
                          .get()                      
                          .uri("http://example.com/") 
                          .response()                 
                          .block();
    }
}

事物HttpClientResponse仅包含标题和状态。这里的Java文档可以看出

同样从示例中可以使用数据

import reactor.netty.http.client.HttpClient;

public class Application {

    public static void main(String[] args) {
        String response =
                HttpClient.create()
                          .get()
                          .uri("http://example.com/")
                          .responseContent() 
                          .aggregate()       
                          .asString()        
                          .block();
    }
}

但这只会将http实体数据返回为字符串。没有有关标题或状态码的信息。

我现在遇到的问题是,我需要发出一个请求并获得一个响应,该响应给我提供标头,状态等以及http响应正文。

我似乎找不到方法。有什么想法吗?

丹尼斯·扎维捷夫(Denis Zavedeev)

看一下以下方法:

它们使您可以同时访问响应正文状态http标头

例如,使用该responseSingle方法,您可以执行以下操作:

private Mono<Foo> getFoo() {
    return httpClient.get()
            .uri("foos/1")
            .responseSingle(
                    (response, bytes) ->
                            bytes.asString()
                                    .map(it -> new Foo(response.status().code(), it))
            );
}

上面的代码将响应转换Foo为如下定义的某些域对象

public static class Foo {
    int status;
    String response;

    public Foo(int status, String response) {
        this.status = status;
        this.response = response;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

reactor-netty:使用保持活动的 HTTP 客户端

来自分类Dev

如何使用netty发送HTTP 100继续响应

来自分类Dev

如何使用Netty关闭AsyncHttpClient以获取异步Http请求?

来自分类Dev

处理http Keep-Alive连接时,如何使用netty将响应映射到请求url

来自分类Dev

无法使用netty在http客户端中读取响应

来自分类Dev

如何在Reactor Netty HTTP客户端中设置TCP Keepalive?

来自分类Dev

使用Netty发送HTTP / 2客户端前言

来自分类Dev

如何使用 Camel toD 和 netty4-http 组件?动态网址优化问题

来自分类Dev

如何为HTTP代理配置Netty管道

来自分类Dev

netty:启用了保持活动状态时,http文件示例无法与apache bench一起使用

来自分类Dev

如何使用 JSTL 获取 http 响应状态代码?

来自分类Dev

使用Http-request在单个请求中获取响应代码和响应正文

来自分类Dev

缺少升级:在netty 4.x上同时使用http和ws

来自分类Dev

在同一Spring Boot应用程序中使用Tomcat HTTP和Netty UDP

来自分类Dev

Spark如何使用Netty?

来自分类Dev

Netty 如何使用 ByteToMessageCodec?

来自分类Dev

Netty 4.0 HTTP块内存泄漏?

来自分类Dev

Netty的HttpObjectAggregator似乎错过了HTTP块

来自分类Dev

Http Server - Netty FileRegions 是否可重用?

来自分类Dev

Netty:单个HTTP请求或响应中的字节数?

来自分类Dev

Netty:单个HTTP请求或响应中的字节数?

来自分类Dev

为什么netty http2服务器总是使用奇数作为streamId

来自分类Dev

处理Netty中临时移动的Http状态代码302

来自分类Dev

导入timboudreau netty-http-client到eclipse吗?

来自分类Dev

如何使用WebFlux和Netty HttpClient访问请求正文

来自分类Dev

如何在Reactor Netty中将ChannelInitializer添加到TcpServer

来自分类Dev

如何使用Golang的net / http包读取流式响应正文?

来自分类Dev

使用http.get时如何获取非http状态代码?

来自分类Dev

使用Netty构建可在同一端口上同时处理HTTP和HTTPS的MITM代理的问题

Related 相关文章

  1. 1

    reactor-netty:使用保持活动的 HTTP 客户端

  2. 2

    如何使用netty发送HTTP 100继续响应

  3. 3

    如何使用Netty关闭AsyncHttpClient以获取异步Http请求?

  4. 4

    处理http Keep-Alive连接时,如何使用netty将响应映射到请求url

  5. 5

    无法使用netty在http客户端中读取响应

  6. 6

    如何在Reactor Netty HTTP客户端中设置TCP Keepalive?

  7. 7

    使用Netty发送HTTP / 2客户端前言

  8. 8

    如何使用 Camel toD 和 netty4-http 组件?动态网址优化问题

  9. 9

    如何为HTTP代理配置Netty管道

  10. 10

    netty:启用了保持活动状态时,http文件示例无法与apache bench一起使用

  11. 11

    如何使用 JSTL 获取 http 响应状态代码?

  12. 12

    使用Http-request在单个请求中获取响应代码和响应正文

  13. 13

    缺少升级:在netty 4.x上同时使用http和ws

  14. 14

    在同一Spring Boot应用程序中使用Tomcat HTTP和Netty UDP

  15. 15

    Spark如何使用Netty?

  16. 16

    Netty 如何使用 ByteToMessageCodec?

  17. 17

    Netty 4.0 HTTP块内存泄漏?

  18. 18

    Netty的HttpObjectAggregator似乎错过了HTTP块

  19. 19

    Http Server - Netty FileRegions 是否可重用?

  20. 20

    Netty:单个HTTP请求或响应中的字节数?

  21. 21

    Netty:单个HTTP请求或响应中的字节数?

  22. 22

    为什么netty http2服务器总是使用奇数作为streamId

  23. 23

    处理Netty中临时移动的Http状态代码302

  24. 24

    导入timboudreau netty-http-client到eclipse吗?

  25. 25

    如何使用WebFlux和Netty HttpClient访问请求正文

  26. 26

    如何在Reactor Netty中将ChannelInitializer添加到TcpServer

  27. 27

    如何使用Golang的net / http包读取流式响应正文?

  28. 28

    使用http.get时如何获取非http状态代码?

  29. 29

    使用Netty构建可在同一端口上同时处理HTTP和HTTPS的MITM代理的问题

热门标签

归档