微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法控制 WebTestClient 发送的 Content-Length 标头?

如何解决有没有办法控制 WebTestClient 发送的 Content-Length 标头?

我正在针对端点构建一些测试,我想验证端点是否具有状态 411 的正确行为。我一直在使用 org.springframework.test.web.reactive.server.WebTestClient 作为我的端点请求。但是,测试客户端似乎为我添加了 Content-Length 标头。我想尝试发送没有 Content-Length 并且长度设置为一些无效值的请求。

我试过了

return WebTestClient.bindToServer()
        .baseUrl(Env.getBaseUrl())
        .build()
        .method(method)
        .uri(path)
        .headers(hdrs -> hdrs.setAll(headers.toSingleValueMap()))
        .contentLength(-1)
        .body(BodyInserters.fromValue(reqBody))
        .exchange();

但是请求头看起来像这样

> POST http://localhost:8080/myapp/v3/resource/
> WebTestClient-Request-Id: [1]
> Accept: [application/json]
> Content-Type: [application/json]
> Authorization: REDACTED
> Content-Length: [244]

我还尝试省略 Content-Length(作为函数调用和 headers 对象中的标题),在我的 headers 对象中显式设置 Content-Length,并将 Content-Length 设置为各种其他值使用 contentLength 方法。在所有情况下,请求都将传出的 Content-Length 标头设置为 244 字节。

如果需要,我可以使用不同的客户端,尽管我目前使用 WebTestClient 进行大量测试,因此如果可能,我更愿意使用该客户端。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?