jmeter 由于内容长度自动计算不正确,使用PUT方法上载区块文件失败

vi4fp9gy  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(173)

我正在使用“HTTP请求”和PUT方法在sFiles {Salesforce共享点}上传块文件。(操作系统- Windows 10)。FileToBeUploaded.pdf是主文件
$ ls -lrt文件 *
-rw-r--r-- 1维克拉姆197121 12065018 8月23日15:51待上传文件. pdf
-rw-r--r-- 1维克拉姆197121 5773562 8月23日15:53文件到珠上传_块.pdf.ab
-rw-r--r-- 1维克拉姆197121 6291456 8月23日15:53待上传文件_块.pdf.aa
用于块上载
1.我们必须将一个文件分成相等的部分,并将其保存在某个地方,然后在创建会话后获得的同一URL上分别上传每个文件。

  1. Content-Length必须是您在所有片段上传请求中上传的文件的总字节数。
    1.内容范围将类似于:0-{片段长度-1}/{文件字节总数}(与内容长度相同),并且从下一个片段开始,内容范围将为{上载的字节}-{上载的字节+下一组字节-1}/{文件字节总数}
    为了遵循这一点,我们应该在请求头中传递有效的内容长度和内容范围。
    问题:但Jmeter [HTTP请求-HTTPClient 4]正在自动计算内容长度,而不是采用标头管理器中定义的内容长度。对于chuck文件上载,应以字节为单位为内容长度与内容范围准确设置大小。但Jmeter每次都会根据其自动计算结果采用新的内容长度。客户端错误:[HTTP 400] {“错误”:{“代码”:“invalidRequest”,“消息”:“内容范围标头长度与提供的字节数不匹配。"}}
    我搜索了互联网上的所有文章,但无法找到任何解决方案来控制/覆盖/硬编码请求标头中的内容尺子。这个问题必须存在于所有使用PUT方法进行块文件上传的共享点网站。[如谷歌驱动器等]
    预期解决方案:在“HTTP请求”中控制/覆盖/硬编码/配置内容尺子的方式。
    请帮助解决此问题。
bkkx9g8r

bkkx9g8r1#

根据Google云端硬盘有关可恢复上传的文档:
1.创建对可恢复会话URI的PUT请求。
1.将文件的数据添加到请求正文。
1.添加一个Content-Length HTTP标头,设置为文件中的字节数。
1.传送要求。如果上传要求中断,或您收到5xx回应,请遵循继续中断的上传中的程序。
因此,如果您使用HTTP请求示例的“Files Upload”选项卡,它将发送完整的文件,您需要将其指向单个块或切换到“Body Data”选项卡
您可能还对building and sending your HTTP Requests using JSR223 Sampler and Groovy language感兴趣

相关问题