java - Log4 使用十六进制代码记录 HTTP 响应

标签 java logging log4j httpclient apache-httpclient-4.x

HTTP 客户端请求以常规 ASCII 记录,但响应以十六进制代码记录。我设置我的 log4j 文件就像另一个没有这个问题的应用程序一样。

httpclient.wire.content >> </soap:Envelope>
...
httpclient.wire.content << "[0x1f][0x8b][0x8][0x0][0x0][0x0][0x0][0x0][0x0][0x0]}[0x93][0xc1]N[0xc3]0[0xc][0x86][0xef]<E[0xe9][0xbd]M[0xcb][0xc4][0xa5]*E m[0x82][0x3]Lb[0xbc]@XM[0x89][0xd4]&!N[0xd3][0x8d][0xa7]G[0xed][0x9a]-[0xe9][0xd6][0xdd][0xe2][0xdf][0x9f][0xed]8vr[0x14]TfKn[0xa0][0x16][0x12][0x82]]Ss[0xcc]z[0xed]![0xfc][0xd1]Zf[0x84]t][0x17]w[0x8b]X[0xa8][0x8a][0xdc]%[0xc9][0x82]$[0xf7][0xa4][0xf7]G0[0xc6][0x84]c[0x90]I[0x8f]![0x86][0x81][0xc2][0xd8][0xd0][0xb8][0x12][0x86][0xc0]7"1iX[0xdc][0x4]A[0x90][0xf][0xe5]^[0x80][0x96][0xa0][0x88][0xa3]<[0x8b]r?[0x98][0xbd]b[0xd2][0xc][0xdb][0xaf][0x86][0xe9][0x95]P[0xcd][0x7][0xa0][0x14][0x1c][0xe1][\r][0x10]i[0x5][0x16][0x1a]9[0xa1]X[0xc5]8[0xd5]L[0xf0][0xd7][0xb2]x[0xcc][0xc9][0x99][0xe6][0xf3]C^D[0x17][0xf7]$[0x9f][0xd6][0x8a]r[0x9c][0xf2][0x13][0xd1][0x8f]P[0xf0][0xdb][0x2][0xea]#|[0xb2]g[0xee][0xcd][0xab][0xb5][0xaa](g^?[0xc3]}[0xdf]i[0x3][0xd3]..[0x10]N[0xae][0xdb

最佳答案

Accept-Encoding: gzip,deflate

由于以下原因,您的请求 header 中的上述内容会导致您描述的症状:

服务器可能会在响应通过 WIRE 之前使用装饰器对响应进行 GZIP 压缩

你的响应过程应该用interceptor todo修饰GUNZip。

不知道这会使 WIRE 记录器处于什么状态。

我只需要将拦截器添加到我在“parse.com”上的一些请求并注意到这一点。 我还不知道记录器处于什么状态。您可能需要更多地了解它。但是应该检查您的响应拦截器,因为它可能涉及相同的事情。

我的回复(那些在 WIRE 记录器中显示为 HEX 的 gzip)在它们出现在 parse.com 的 Android 应用程序中时只是挂起。正如您在代码链接中看到的那样,只需将包装器固定在响应实体上。

关于java - Log4 使用十六进制代码记录 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24939312/

相关文章:

java - 为什么 Scanner 方法不返回 void?

Java 如何初始化一个列表<element>

java - `String.class` 和 `new Class[]{String.class}` 有什么区别?

ios - iOS 上的蓝牙诊断日志

java - log4j.xml 日志记录在 spring Controller 中不起作用?

java - 设置 JWindow 背景图像

java - 分布式系统应该使用哪些Appender?如何配置它们?

java - 使用配置的 log4j 跟踪日志中的类

java - Log4j 不附加文件扩展名

entity-framework - 如何详细记录我的实体错误