Hello, when recording HTTP data with JMeter, I'd assume that the request is sent to the server just like the browser would send it. This is not the case in two examples I've run across.
As you'll know, when recording with HTTP Proxy Server, JMeter will be creating HTTP Samplers and then using their sample method to realize the request, returning the return value to the browser. So we need to create a HTTP Sampler which produces the same request as the browser would have. When looking at HttpRequestHdrExt.populateSampler, I see that ConversionUtils,getEncodingFromContentType is called. In case the encoding is not supported (returns null) we look in the pageEncodings and formEncodings maps (when are they populated??) and if we find nothing here, we use: postData = new String(rawPostData); meaning we convert the bytes to a string based on the platform-specific default encoding. In my examples this breaks the communication, so not only replay but record does not work. In one case I have no Content-Type header in the request, and new String(rawPostData) seems to break it, in the other case, I have a Content-Type: application/soap+msbin1 header, where "getEncodingFromContentType" returns null. We really should make sure JMeter sends exactly what it received to the server when acting as proxy, and even better would be if this would work when executing the test. What do you think? Regards, Jens