Curl 创建一个大的 post 请求

lar*_*595 4 curl

我需要调查服务器上的超时问题,并且需要发出大型 HTTP post 请求。是否有一些简单的方法可以使用curl 创建大型HTTP post 请求,或者是否有一些更好的工具。

curl -X POST -d {10mb random string} localhost:8080/test
Run Code Online (Sandbox Code Playgroud)

Ano*_*non 8

创建10M的文件

dd if=/dev/urandom of=output.dat  bs=1M  count=10
Run Code Online (Sandbox Code Playgroud)

然后使用Curl发送文件

curl -X POST -d @output.dat localhost:8080/test

这是你想要的?

来自联机帮助页

-d,--数据

(HTTP) 将 POST 请求中的指定数据发送到 HTTP 服务器,就像用户填写 HTML 表单并按下提交按钮时浏览器执行的操作一样。这将导致curl 使用内容类型application/x-www-form-urlencoded 将数据传递到服务器。与 -F、--form 进行比较。

--data-raw 几乎相同,但没有对 @ 字符进行特殊解释。要发布纯二进制数据,您应该使用 --data-binary 选项。要对表单字段的值进行 URL 编码,您可以使用 --data-urlencode。

如果在同一命令行上多次使用这些选项中的任何一个,则指定的数据片段将与分隔的 & 符号合并在一起。因此,使用“-d name=daniel -d Skill=lousy”将生成一个看起来像“name=daniel&skill=lousy”的帖子块。

如果您以字母@开头数据,则其余部分应该是从中读取数据的文件名,或者 - 如果您希望curl从stdin读取数据。也可以指定多个文件。因此,从名为“foobar”的文件发布数据可以使用 -d, --data @foobar 来完成。当 --data 被告知从这样的文件中读取时,回车符和换行符将被删除。如果您不希望@字符有特殊的解释,请改用--data-raw。

另请参见--data-binary 和--data-urlencode 和--data-raw。此选项覆盖 -F、--form 和 -I、--head 和 --upload。