gpt4 book ai didi

http - 如何使用 apache bench 提交带有 json 输入的 GET 请求?

转载 作者:可可西里 更新时间:2023-11-01 16:43:35 27 4
gpt4 key购买 nike

我们的服务请求看起来像这样:

GET http://[SERVICE]/Node:[id].Build?format=mime1,mime2,...,mimeN&template-id=[templateid]
Accept: multipart/mixed
Content-Type: application/json
body: json document

我正在尝试使用 ApacheBench 对此进行基准测试。这是我正在使用的电话:

ab -n 10 -c 2 -T 'application/json' -H 'Accept: multipart/mixed' 'http://phx5qa01c-02b0.stratus.phx.qa.ebay.com/.Build?format=text/html,text/plain&template-id=29b1468f-c8c3-db23-2f6f-74e112795540'

此调用通过,并导致错误,因为预期的 json 数据不存在。ab 中是否有一种方法可以随此请求一起提供必要的 json。我看到有 -p 和 -u 命令来指定输入文件,但这些命令用于放置和发布。

最佳答案

我意识到这个答案晚了六年,但我认为它值得发布,因为我在一个与此非常相似的问题上撞墙,我试图加载测试只返回的 URL JSON 数据和我的解决方案可能会帮助其他遇到此问题的读者。我的问题是我在不需要时一直指定 -H 选项。这使服务器不断向我的 AB 请求发回 HTTP 406 响应代码( Not Acceptable )。在我的大部分故障排除过程中,当我不需要它时,我还在 AB 请求中保留了 -T 'application/json' 。这仅与 PUT 或 POST 结合使用(使用 -p 开关时)。所以我删除了 -H 和 -T,它起作用了。综上所述,我在这里看到了这两个问题。我们需要注意,AB 默认使用 GET 方法。

  1. 您通过将额外的自定义 header 附加到请求,通过使用 -H 选项:-H 'Accept: multipart/mixed',它可能会让你的目标服务器认为这是一个无效的请求并停止当时和那里的顺序。只是不要使用 -H 除非你有真的很好的理由。

  2. 您正在使用 -T 选项:-T 'application/json'仅当您将其与 -p 一起指定并且您不要在您的命令中的任何地方使用 -p,您无论如何都不想使用它,因为您发送的是 GET 而不是 PUT 或 POST。

因此,要解决此问题,只需同时删除 -T 和 -H 选项,它就会起作用。 提醒其他读者:如果在 Windows 上,只要 URL 包含“&”或“?”等特殊字符,就用双引号括起来,就像本例一样。

ab -n 10 -c 2 'http://phx5qa01c-02b0.stratus.phx.qa.ebay.com/.Build?format=text/html,text/plain&template-id=29b1468f-c8c3-db23-2f6f-74e112795540'

关于http - 如何使用 apache bench 提交带有 json 输入的 GET 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17242560/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com