Curl
此方法是从 curl 命令创建 http 请求。如果你想了解更多关于 curl 的信息,请点击 Curl 文档 。
24.1 如何输入(a)命令
从 cURL 命令创建测试计划
要从 cURL 创建导入,请打开工具菜单并单击从 cURL 导入。
图 1 - curl 所在的菜单
有两种方法可以进入 curl 命令行。首先,我们可以手动输入。其次,我们可以导入包含 curl 命令行的文件。该工具支持同时输入多个 curl 命令行。
图 2.1 - 在文本面板中输入 curl 命令
图 2.2 - 从文件中输入 curl 命令
然后,单击 Create Test Plan 按钮,一个新的 HTTP Sample 将被添加到测试计划中。
图 3 - 测试计划的结果
24.2 支持 curl 选项
-H , --header <标题>
获取网页时使用的额外标题。
-X , --request <命令>
指定与 HTTP 服务器通信时要使用的自定义请求方法。
--compressed
使用 curl 支持的算法之一请求压缩响应,并返回未压缩的文档。
-A , --user-agent <代理字符串>
指定要发送到 HTTP 服务器的用户代理字符串。
-b , --cookie <name=data>
将数据作为 cookie 传递给 HTTP 服务器。
-d 和 friends
通过 POST 请求发送数据
将 POST 请求中的指定数据发送到 HTTP 服务器。如果在同一命令行上多次使用此选项,则指定的数据片段将与分隔的“ & ”字符合并在一起。因此,使用' -d name=daniel -d Skill=lousy '会生成一个看起来像' name=daniel&skill=lousy '的 POST 块。
-d , --data <数据> , --data-ascii <数据>
使用@上传文件
--data-raw <数据> >
--data-raw <数据>
这完全按照指定的方式发布数据,没有任何额外的处理。如果你以字符@ 开始数据,则其余部分应为文件名。
--data-raw <数据> ta>
这将发布数据,类似于其他--data 选项,不同之处在于它执行 URL 编码。
--data-raw <数据>
这类似于--data 发布数据,但没有对@字符的特殊解释。
-F 和 friends
这让 curl 可以模拟用户按下提交按钮的填写表单。
-F , --form <名称=内容>
使用@上传文件
--form-string <名称=内容>
-u , --user <user:password>
指定用于服务器身份验证的用户和密码。
--基本,--摘要
告诉 curl 使用 HTTP 身份验证。
--cacert 和 friends 们
告诉 curl 在使用 HTTPS 获取文件时使用指定的客户端证书文件
--cacert <CA 证书>
--capath <CA 证书目录>
--ciphers <密码列表>
--cert-status
--cert-type <类型>
-G,--get
将帖子数据放在 URL 中并使用 get 替换帖子。
--no-keepalive
禁用在 TCP 连接上使用 keepalive 消息。
-e , --referer <URL>
将 Referer Page信息发送到 HTTP 服务器。
-L,--location
如果服务器报告请求的页面已移动到不同的位置,此选项将使 curl 在新位置重做请求。
-i , --include
在输出中包含 HTTP 标头。
--connect-timeout <秒>
连接到服务器可能花费的最长时间(以秒为单位)。
--keepalive-time <秒>
此选项设置连接在发送保活探测之前需要保持空闲的时间以及各个保活探测之间的时间。
-m , --max-time <秒>
允许整个操作花费的最长时间(以秒为单位)。
-x , --proxy \[protocol://\]\[user:password@\]proxyhost\[:port\]
使用指定的 HTTP 代理。如果未指定端口号,则假定为端口 1080。
-U , --proxy-user <用户:密码>
指定用于代理身份验证的用户和密码。
-k , --insecure
此选项明确允许 curl 执行不安全的 SSL 连接和传输。
- raw
使用时,它会禁用所有内容的内部 HTTP 解码或传输编码,而是让它们原封不动地传递。
-I, --head
仅获取 HTTP 标头。HTTP 服务器具有 HEAD 方法,该方法用于获取文档标题以外的任何内容。
--interface <名称>
使用指定的接口执行操作。你可以输入接口名称、IP 地址或主机名。
--proxy-ntlm / --proxy-negotiate
告诉 curl 在与给定代理通信时使用 HTTP BASIC/NTLM/Digest 身份验证。
--dns-servers <地址>
通过 DOH 解析主机名。
--resolve <主机:端口:地址>
为特定主机和端口对提供自定义地址。
--limit-rate <速度>
指定你希望 curl 使用的最大传输速率。
--max-redirs <数量>
设置可以遵循的最大重定向数。
--noproxy <无代理列表>
不使用代理的主机的逗号分隔列表(如果已指定)。
24.3 警告
当你输入的命令被忽略或包含警告内容时,我们将在 HTTP 请求的注释部分显示警告。
图 1 - 警告
24.4 示例
使用 cookie
curl -X POST "https://example.invalid" -b 'username=Tom;password=123456'
使用数据
curl -X POST "https://example.invalid" --data 'fname=a&lname=b'
使用表格
curl -X POST "https://example.invalid" -F 'lname=a' -F 'fname=b' -F 'c=@C:\Test\test.txt'
使用代理服务器
curl 'https://example.invalid/' -x 'https://aa:bb@proxy.invalid:8042'
使用授权
curl "https://example.invalid" -u 'user:passwd' --basic
使用 DNS
curl "https://example.invalid" --dns-servers '0.0.0.0,1.1.1.1'