让Jmeter在内容类型头中生成边界破折号(例如边界=--V0a4bfux…)

让Jmeter在内容类型头中生成边界破折号(例如边界=--V0a4bfux…),jmeter,multipartform-data,multipart,form-data,boundary,Jmeter,Multipartform Data,Multipart,Form Data,Boundary,这就是我的HTTP请求正在生成的内容 Content-Type: multipart/form-data; boundary=V0a4bfuxfGhaH_Voo_Gu6oAEtj5FJNcp; charset=UTF-8 但是,与POST数据相比,它前面缺少2个破折号,这会导致服务器拒绝请求: --V0a4bfuxfGhaH_Voo_Gu6oAEtj5FJNcp Content-Disposition: form-data; data="dataToBeSent" --V0a4bfuxfGha

这就是我的HTTP请求正在生成的内容

Content-Type: multipart/form-data; boundary=V0a4bfuxfGhaH_Voo_Gu6oAEtj5FJNcp; charset=UTF-8
但是,与POST数据相比,它前面缺少2个破折号,这会导致服务器拒绝请求:

--V0a4bfuxfGhaH_Voo_Gu6oAEtj5FJNcp
Content-Disposition: form-data; data="dataToBeSent"
--V0a4bfuxfGhaH_Voo_Gu6oAEtj5FJNcp--
如何让Jmeter在标题中生成破折号? (除了手动创建多部分表单之外)

注:

  • 我正在使用“将多部分/formdata用于POST”选项
  • 如果我截获请求并在标题中手动添加破折号,则 服务器接受请求

您不需要生成这些值,解决方案是在采样器(或HTTP请求默认值)中的“
为POST使用多部分/表单数据”框中打勾


如果您在-中有任何标题定义,则需要将其删除,并让JMeter自己生成适当的内容类型标题

标题不需要破折号。这就是多部分/表单数据的工作方式。车身结构如下所示:

--<boundary>
<headers>

<content>
--<boundary>
<headers>

<content>
--<boundary>--
--
--
----

--part表示新零件开始。正文以----结尾,表示没有新的部件将出现。

我无法获得JMeter v。3.3在开始时生成与2个破折号不同的任何内容。例如,对于java客户端:
内容类型:多部分/表单数据;boundary=----------------------------7d159c1302d0y0
与HttpClient4:
--U6pY3zGZBD_bx96zA7CvbGR8kqE_B5ppLF--
那么旧版本呢?还有什么不同吗?@KirilS。我想它不需要正好是两个破折号。只要标题中的边界值与POST数据中的值匹配。顺便说一句,我使用的是v3.2。理想情况下,最好在v3.2I中有一个解决方案,我已经在使用多部分表单选项,问题是标题中生成的值没有破折号,而POST数据中的值有。我在将数据上载到Flask服务器时遇到了一个问题。使用Postman
多部分/表单数据
,它工作正常。但不是用JMeter。正如回答中提到的,我在HTTP头管理器中删除了Content-Type头,然后它就工作了。但现在我必须将
内容类型
头添加到所有其他请求中,而不是使用公共HTTP头管理器@dmitri-t有没有关于如何克服这一问题的建议?