JMeter POST文件使用Transfer-Encoding chunked

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JMeter POST文件使用Transfer-Encoding chunked相关的知识,希望对你有一定的参考价值。

我正在使用JMeter来模拟将文件发送到我的服务器的设备。设备使用Transfer-Encoding chunked将数据发送到服务器。我试图将Transfer-Encoding设置为HTTP标头管理器的一部分,但是会收到以下错误:

Org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:839)org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)中的org.apache.http.client.ClientProtocolException )org.apache.jotocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:697)org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:455)at org。位于org.apache.jmeter的org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1189)的apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)。 protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1178)org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:490)org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread。 java:416)atg.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:250)at java.lang.Thread.run(Thread.java:748)引起:org.apache.http.ProtocolException:转码编码头已经存在org.apache.http.protocol.RequestContent.process(RequestContent.java:94)org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:133)org.apache.http .protocol.HttpRequestExecutor.preProcess(HttpRequestExecutor.java:167)org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:484)at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient)的.java:835)`

如果我不包含Transfer-Encoding,我默认获得Content-Length,这意味着我没有使用chunked编码。

Request Headers:
Connection: keep-alive
Content-Type: application/octet-stream
Accept-Language: en-US
Accept: application/json
Content-Length: 9353
User-Agent: Apache-HttpClient/4.5.5 (Java/1.8.0_152)`

任何帮助将不胜感激。

答案

就像在Header Manager文档中一样

标题管理器允许您添加或覆盖HTTP请求标头。

JMeter现在支持多个Header Manager。合并标头条目以形成采样器的列表。如果要合并的条目与现有标头名称匹配,则它将替换先前的条目

这意味着您需要将HTTP标头管理器添加为您的请求的子项,并使用最新的JMeter 4.0并且它将覆盖任何以前的值集。

以上是关于JMeter POST文件使用Transfer-Encoding chunked的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter之上传文件

如何在 jmeter 的 post 请求中发送 csv 文件或 json 数据?

Jmeter之post上传文件

使用Jmeter如何测试下载接口

jmeter http请求与参数化

Jmeter模仿post接口