【发布时间】:2017-07-14 13:45:52
【问题描述】:
在 JMeter 上工作并尝试将soap请求发送到服务器并显示以下错误消息。
错误消息:- 无法处理消息,因为内容类型 'application/soap+msbin1' 不是预期的类型 'application/xml; charset=utf-8'。
我们需要帮助将 XML 编码为 'application/soap+msbin1' 格式。
【问题讨论】:
标签: jmeter
在 JMeter 上工作并尝试将soap请求发送到服务器并显示以下错误消息。
错误消息:- 无法处理消息,因为内容类型 'application/soap+msbin1' 不是预期的类型 'application/xml; charset=utf-8'。
我们需要帮助将 XML 编码为 'application/soap+msbin1' 格式。
【问题讨论】:
标签: jmeter
聚会有点晚了,但我遇到了类似的问题 - 我有一个使用嵌入式二进制 XML (xop:Include cid="...") 的 SOAP 请求模板,我不得不挠头才弄明白如何使用股票 HTTP 请求来做到这一点。
答案:你不能——不是以简单的方式。为了解决这个问题,我最终定制了 JMeter(我也查看了 HTTPRawRequest,但它似乎不支持 https,我必须重写很多测试脚本才能使用它)。由于 HTTP 请求完成了 99% 的工作,因此支持二进制数据的最快方法是更改源代码以处理二进制数据。
主要问题有两个:JMeter 中的 Function 接口是围绕返回 String 而设计的,而不是 byte[]。所以 __FileToString() (我用来读取外部二进制文件)已经对文件的内容进行了编码。其次,HTTP 请求采样器和 HTTPHC4Impl 本身(不包括“上传文件”位)在将 HTTP 请求的部分发送到网络之前对其进行编码。
更改意味着 Function、AbstractFunction、CompoundVariable 中的更改,并创建一个新的函数类 FileToStringBinary,它以一种可以在之后解码的方式对二进制数据进行编码(通过对 HTTPHC4Impl 所做的更改)。
如果我有时间,我会找到发布想法和来源的地方(无法提交给 JMeter,因为我对 HTTPHC4Impl 的更新仅限于处理我需要测试的特定请求,其中嵌入的二进制文件是在多部分/相关部分中,我没有时间或倾向于处理一般情况),但如果您仍然需要帮助才能使其工作,请留言。
【讨论】: