I set an EntityEnclosingMethod request entity to be a ByteArrayRequestEntity.
This entity has the Java characters "\u4E2D\u6587" as the corresponding UTF8
bytes (UTF8 = 0xE4,0xB8,0xAD,0xE6,0x96,0x87). This is confirmed by logging
httpclient.wire.content. There I see the UTF8 values.
However what appears to really get transmitted is the corresponding Java
characters rather than the UTF8 values! As this is supposedly a UTF8 encoded
XML document the receiver is not best pleased. This is confirmed by performing
HTTP sniffing using org.apache.axis.utils.tcpmon.My suspicion is that somehow a
character handler is intervening?
Debugging HttpConnection implied that the output stream is a
BufferedOutputStream wrapping a java.net.SocketOutputStream. I had assumed that
the socket streams would be byte oriented. The content type is set to
'text/xml; chartset="utf-8"'.
I am normally using HttpClient 3.0 + but the latest 3.1 appeared to react
exactly the same.