java - 获取完整的 HTTP 请求

标签 java rest http unirest

对于调试问题,我希望在提供一组选项时让 Unirest-Java 执行请求。我怎样才能得到这个:

POST / HTTP/1.1
Host: www.some.host.tld
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
field1=FIELD1&field2=FIELD2

来自这里:

HttpRequest request = Unirest.post(SOMEHOST_URL)
            .field("field1" , FIELD1)
            .field("field2", FIELD2)
            .getHttpRequest();

也就是说,我如何从 HttpRequest 获取完整的 HTTP 请求?我真的不知道要使用什么代理,因为我唯一可以获得 SSL 支持的代理是 Charles,并且出于某种原因它不会获取 java 流量。其他工具会在 SSL 上阻塞,主要是因为我需要与之通信的服务器存在缺陷,使用的是自签名证书和无效的主机名。所以我很乐意尝试代理,但它必须在这些条件下工作。更好的做法是从 Unirest/HTTPClient 本身中提取此信息。我已经尝试使用 .setInterceptorFirst( 构建 HttpClient 但我无法从拦截器获取请求正文,只有 一些 它的 header 。

最佳答案

我从未使用过 Unirest,但它使用 Apache HTTP 客户端 4,因此在 org.apache.http 上设置调试级别记录器应该会为您提供所有传输的数据,包括 header 和内容。

请根据您使用的日志系统查看如何操作

编辑:https://hc.apache.org/httpcomponents-client-4.5.x/logging.html

关于java - 获取完整的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25963565/

相关文章:

html - 如何避免页面过期?

java - 文件中不支持的函数列表

java - Netty WriteAndFlush 方法不起作用

java - 在带有Scene2D的LibGDX中,按下按钮时如何连续向右行走?

c# - 如何在 C# 中使用 post 将 json 值传递给 API?

python - 为数据存储中存储的图像发送 "304 Not Modified"

java - 如何在 lucene 中索引 pdf、ppt、xl 文件(基于 java 或 python 或 php 的任何一个都可以)?

node.js - 如何检查node.js和sqlite3更新是否成功?

node.js - 不同路径上的多个 socket.io 实例

C# HTTP Web 请求一直超时