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/