开发者社区 > 云原生 > Serverless > 正文

反馈个问题,性能探测里测了 multipart/form-data 的请求,content-leng

反馈个问题,性能探测里测了 multipart/form-data 的请求,content-length 一直是0

提问12.png

展开
收起
绿子直子 2023-05-15 20:18:55 211 0
3 条回答
写回答
取消 提交回答
  • 月移花影,暗香浮动

    如果你使用的是性能测试工具例如 Jmeter,那么在测试 multipart/form-data 请求时,可能会遇到 content-length 一直是 0 的问题。这是因为在此类型的请求中,content-length 会动态计算,因此设置 content-length 是无效的。此时,测量的结果会显示为 0。

    如果你需要测量 multipart/form-data 请求的性能,可以通过添加操作代码或使用插件来解决该问题。下面提供两种常用的解决方案:

    1. 使用 Jmeter 的 HTTP Raw Request 插件,可以完全手动配置 HTTP 请求,包括请求头、请求体和响应头等。可以通过手动添加 content-length 头来解决此问题。

    2. 另一种可行的解决方法是首先使用 Fiddler 等网络代理工具构建 multipart/form-data 请求,然后通过自定义样板代码或使用 Jmeter 的 HTTP Request 插件将其转换为性能测试中可用的操作代码。在此过程中,需要将测量脚本中的 content-length 设置为自定义样板代码中实际请求大小的值。

    2023-05-16 11:08:59
    赞同 展开评论 打赏
  • multipart/form-data 是一种常见的 POST 请求内容类型,通常用于上传文件及其它二进制数据。在测量这种请求时,可能会遇到一些问题。

    就您提供的信息来看,可能是由于您的请求中未正确设置请求头或请求体导致的。multipart/form-data 请求的请求头中需要包含一些额外的信息,比如 boundary,boundary 定义了每个部分的边界,用于接收端解析请求体内容。同时,请求体也需要按照一定格式进行编码,以便解析器准确地解析内容。

    您可以检查一下请求体中是否包含文件数据,并且是否按照规定的格式进行编码。如果您使用的是 Postman 工具发送请求,可以直接使用 "form-data" 选项卡来设置请求体格式,并在请求头中设置完整的 boundary 信息。

    如果您的问题仍然存在,您可以更换其它的性能测试工具尝试,如 JMeter、LoadRunner 等,并检查请求的完整性,以便准确的测量性能数据。

    2023-05-16 08:29:58
    赞同 展开评论 打赏
  • 不用探测,直接发请求,multipart 是可以的。手写的 multipart 的 body 发不出去,看了请求体是空的。

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-05-15 22:15:40
    赞同 展开评论 打赏
问答地址:

快速交付实现商业价值。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载