HttpClient在 Java 9 中实验性引入的 Java 现在在 Java 11 中是稳定的,但毫不奇怪,似乎很少有项目真正使用它。文档几乎不存在。
进行 HTTP 调用时最常见的问题之一是记录请求/响应。您将如何使用 HttpClient
做到这一点,当然不用在每次调用中手动记录它?是否有像所有其他 HTTP 客户端提供的那样的拦截器机制?
最佳答案
您可以通过在 Java 命令行上指定-Djdk.httpclient.HttpClient.log=requests
来记录请求和响应。
至于测试/模拟你可能想看看离线测试: http://hg.openjdk.java.net/jdk/jdk/file/tip/test/jdk/java/net/httpclient/offline/
根据您希望实现的目标,您也可以使用“DelegatingHttpClient”来拦截和记录请求和响应。
除了 Java API 文档之外,还有一些高级文档位于 http://openjdk.java.net/groups/net/httpclient/index.html
补充说明:
jdk.httpclient.HttpClient.log
属性是一个特定于实现的属性,其值是一个逗号分隔的列表,可以在 Java 命令行上使用以下值进行配置以用于诊断/调试目的:
-Djdk.httpclient.HttpClient.log=
errors,requests,headers,
frames[:control:data:window:all],content,ssl,trace,channel,all
关于java - 如何使用 java.net.http.HttpClient 记录请求/响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53215038/