【发布时间】:2014-09-16 08:08:19
【问题描述】:
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
【问题讨论】:
-
您在标头中请求什么 mime-type/content-type?
-
@Robert Rowntree,我正在发送“Content-Type: text/xml;charset=UTF-8”
-
你在响应中得到 'application/...'。这可能就是线路记录器转储十六进制的原因。
-
这就是响应中的内容。很明显,您没有发送标头表明您将接受“文本”
-
@Robert Rowntree,这是有道理的。我们使用模拟作为响应,它可能对类型进行硬编码。您是否在线使用了十六进制到字符串转换器?我尝试使用一个,但得到了一堆特殊字符。
标签: java logging log4j httpclient apache-httpclient-4.x