1

我很难更改 JMeter 中 POST 调用的标头参数(Content-Type: text/plain; charset=US-ASCII to Content-Type: application/json ) - 将 JSON 文本作为 mutlipart/form-data 参数发送带有内容应用程序/json。

试过这个代码片段 - sampler.getHeaderManager().remove(1) - 它没有帮助删除正文标题。

--v_23LkJlLQpYLpcElRptQYb74v7-UeP
Content-Disposition: form-data; name="symbol"
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit

{"name":"man_234","Id":"7d12d44c2"}
--v_23LkJlLQpYLpcElRptQYb74v7-UeP--

你能给我留下建议吗?

4

1 回答 1

0

如果要修改请求正文Content-Type: text/plain; charset=US-ASCII中的位,则需要以不同的方式进行,即:在JSR223 PreProcessor中使用以下代码:

def oldBody = sampler.getArguments().getArgument(0).getValue()
def newBody = oldBody.replaceAll('Content-Type: text/plain; charset=US-ASCII','Content-Type: application/json')
sampler.getArguments().removeAllArguments()
sampler.addNonEncodedArgument('',newBody,'')

但是,您的方法可能不是最好的方法,因为在多部分请求的情况下,每个FormData条目都可以有自己的Content-Type,因此您需要以不同的方式构建它,而不是修改请求。有关手动构建多部分请求的示例, 请参阅JMeter 文章中的测试 REST API 文件上传。

于 2018-06-13T07:16:05.490 回答