Curl入门 青旅半醒 2024-04-03 14:16 49阅读 0赞 ## Curl命令 ## #### 文章目录 #### * Curl命令 * * Curl基础语法 * Curl测试用例 `curl`(CommandLine Uniform Resource Locator),是一个利用 URL 语法,在[命令行][Link 1]终端下使用的网络请求工具,支持 HTTP、HTTPS、FTP 等协议。curl也有用于程序开发使用的版本 libcurl。 ### Curl基础语法 ### > curl语法 curl [options...] <url> > 常用参数 # Show Info -h/--help # 打印帮助信息 -V/--version # 显示版本信息 -s/--silent # 静默模式, 不输出任何内容 -i/--include # 输出包含 headers 信息 -v/--verbose # 输出详细内容 -#/--progress-bar # 以进度条方式显示传输过程 ----------------------------------------------------------------------------------------- # Headers -H/--header LINE (H) # 添加请求头, 可添加多个 -H 参数, # 参数格式: -H "NAME: VALUE" -A/--user-agen STRING (H) # 请求头的 User-Agent 字段 -e/--referer URL (H) # 请求头的 Referer 字段 -r/--range RANGE (H) # 请求头的 Range 字段 -b/--cookie STRING/FILE (H) # 请求头的 Cookie 字段, 以字符串的形式提供, # 或从指定 cookie 文件中读取 -c/--cookie-jar FILE (H) # 把响应头中的 cookie 保存到指定文件 -D/--dump-header FILE # 把 headers 信息保存指定文件 -I/--head # 只显示文档信息(只显示响应头) ----------------------------------------------------------------------------------------- # Request Content # 执行命令, 如果是 HTTP 则是请求方法, 如: GET, POST, PUT, DELETE 等 #例如 DELETE请求:curl -X DELETE bailu.com/examlple.html #例如 PUT请求:curl -X PUT --data 'keyword=linux' bailu.com # 如果是 FTP 则是执行 FTP协议命令 -X/--request COMMAND # HTTP POST 请求内容(并自动发出 POST 请求), 例如: aa=bb&cc=dd -d/--data DATA (H) # HTTP multipart POST 表单数据,(并自动发出 POST 请求) # 多个表单字段可添加多个 -H 参数, 如果是文件参数, 路径值前面需要加@ # 参考格式: -F "name1=@/filepath" -F "name2=stringvalue" # 参考格式:--data @request.xml -F/--form CONTENT (H) ----------------------------------------------------------------------------------------- # Response Content -o/--output FILE FILE # 把响应内容输出到指定文件 -O/--remote-name # 以 URL 的文件名作为文件名称保存响应内容到当前目录 -C/--continue-at OFFSET # 断点续传, 从 offset 位置继续传输 ----------------------------------------------------------------------------------------- -y/--speed-time SECONDS # 连接 超时时间, 单位: 秒, 默认为 30 -m/--max-time SECONDS # 读取 超时时间, 必须在该时间内传输完数据, 单位: 秒 --limit-rate RATE # 限速传输, 单位: Byte/s -x/--proxy [PROTOCOL://]HOST[:PORT] # 设置代理 -U/--proxy-user USER[:PASSWORD] # 代理的用户名和密码 -u/--user USER[:PASSWORD][;OPTIONS] # 设置服务器的用户密码和登录选项 --cacert FILE (SSL) # 使用指定的 CA 证书 -P/--ftp-port ADR (F) # 指定 FTP 传输的端口 -T/--upload-file FILE # 上传文件到指定的 URL (http/ftp) 位置, # 参考格式: -T "file1" 或 -T "{file1,file2}" -Q/--quote CMD (F/SFTP) # 执行命令, -X 只执行一条命令, -Q 可执行多条, # 多条命令将按顺序执行, # 参考格式: -Q "cmd1" -Q "cmd2" ### Curl测试用例 ### > **并发请求1000次某SOAP接口** **操作步骤:** 1. 修改脚本权限:chmod +x request.sh 2. 把以\\r结束的字符换成空白:sed -i ‘s/\\r$//’ request.sh 3. ./request.sh request.sh #!/bin/bash start_time=`date +%s` for ((i=1;i<=1000;i++)) do { curl curl -o response.txt --header "Content-Type: text/xml;" --header "SOAPAction:application/soap+xml;charset=utf-8" --data @request.xml http://10.1.xx.xx:18623/vrbt/services/VRBTCallerGroupManage2?wsdl echo 'success'$i }& done stop_time=`date +%s` echo "TIME:`expr $stop_time - $start_time`" request.xml <soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:open="http://openinterface.crbt.ebupt.com"> <soapenv:Header/> <soapenv:Body> <open:vRBTAddCallerGroup soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <event xsi:type="sch:VRBTAddCallerGroupEvt" xmlns:sch="http://schemas.prbt.cmcc.com"> <DID xsi:type="xsd:string">1128001</DID> <DIDPwd xsi:type="xsd:string">b2b750e115db0b0aaadf83892dc765d8</DIDPwd> <MSISDN xsi:type="xsd:string">17800000001</MSISDN> <SEQ xsi:type="xsd:string">00000000000000000000000000000</SEQ> <accessPlatformID xsi:type="xsd:string">1234567812345678</accessPlatformID> <callerGroupName xsi:type="xsd:string">测试2</callerGroupName> </event> </open:vRBTAddCallerGroup> </soapenv:Body> </soapenv:Envelope> > **HTTP/HTTPS 网络请求** #get请求 curl https://www.baidu.com/ # GET请求, 输出 响应内容 curl -I https://www.baidu.com/ # GET请求, 只输出 响应头 curl -i https://www.baidu.com/ # GET请求, 输出 响应头、响应内容 curl -v https://www.baidu.com/ # GET请求, 输出 通讯过程、头部信息、响应内容等 #下载文件 #指定保存的文件名称下载文件 curl https://www.baidu.com -o baidu.txt #使用 URL 指定的资源文件名保存下载文件(URL 必须指向具体的文件名) curl https://www.baidu.com/index.html -O #指定 Usaer-Agent 和 Referer 请求头的值, 下载文件 curl -A "Mozilla/5.0 Chrome/70.0.3538.110 Safari/537.36" \ -e "https://www.baidu.com/" \ https://www.baidu.com/index.html -O #指定Authorization请求头的值, 下载文件 #参数格式: -H "NAME: VALUE" curl -H "Authorization: a112121dada" \ https://www.baidu.com/index.html -O ----------------------------------------------------------------------------------------- #POST 提交 JSON 数据(\表示命令语句还未结束, 换行继续) curl -H "Content-Type: application/json" \ -d '{"username":"hello", "password":"123456"}' \http://localhost/login #POST 提交 表单数据 curl -F "username=hello" \ -F "password=123456" \ -F "head_image=@filepath.jpg" \ http://localhost/register > **FTP 上传/下载文件** 假设 FTP 服务器 地址为:192.168.0.100; 用户名为:user; 密码为:passwd # 查看文件 # 查看 FTP 指定目录(目录必须以"/"结尾)下的文件列表 curl ftp://192.168.0.100/aaDir/ -u "user:passwd" # 查看 FTP 指定文件的内容(直接输出到终端) curl ftp://192.168.0.100/aaDir/aa.txt -u "user:passwd" # 用户名 和 密码 的另一种写法(查看 FTP 服务器指定目录) curl ftp://user:passwd@192.168.0.200/aaDir/ ----------------------------------------------------------------------------------------- # 上传文件 # 上传 aa.txt 文件到 FTP 指定目录下(目录必须以"/"结尾), 并以 原文件名 命名保存 curl ftp://192.168.0.100/aaDir/ -u "user:passwd" -T "aa.txt" # 上传 aa.txt 文件到 FTP 指定目录下, 并以 bb.txt 命名保存 curl ftp://192.168.0.100/aaDir/bb.txt -u "user:passwd" -T "aa.txt" # 同时上传多个文件 curl ftp://192.168.0.100/aaDir/ -u "user:passwd" -T "{aa.txt,bb.txt}" ----------------------------------------------------------------------------------------- # 下载文件 # 下载 FTP 指定文件 /aaDir/aa.txt, 以原文件名命名保存到当前目录 curl ftp://192.168.0.100/aaDir/aa.txt -u "user:passwd" -O # 下载 FTP 指定文件 /aaDir/aa.txt, 以 bb.txt 命名保存 curl ftp://192.168.0.100/aaDir/aa.txt -u "user:passwd" -o bb.txt ----------------------------------------------------------------------------------------- # 执行 FTP 协议命令 curl 执行 FTP 命令格式: 单条命令: curl [-options] <ftpUrl> -X "FTP命令" 多条命令: curl [-options] <ftpUrl> -Q "FTP命令" -Q "FTP命令" # 创建文件夹, 在 /aaDir/ 目录(目录必须以"/"结尾)下创建 bbDir 文件夹 curl -u "user:passwd" ftp://192.168.0.100/aaDir/ -X "MKD bbDir" # 删除文件夹, 删除 /aaDir/ 目录下的 bbDir 文件夹(文件夹必须为空) curl -u "user:passwd" ftp://192.168.0.100/aaDir/ -X "RMD bbDir" # 删除文件, 删除 /aaDir/ 目录下的 aa.txt 文件 curl -u "user:passwd" ftp://192.168.0.100/aaDir/ -X "DELE aa.txt" # 重命名, 重命名需要连续执行两条命令, 使用两个 -Q 参数连续执行两条命令(必须先 RNFR, 后 RNTO) curl -u "user:passwd" ftp://192.168.0.100/ -Q "RNFR OldPath" -Q "RNTO NewPath" [Link 1]: https://so.csdn.net/so/search?q=%E5%91%BD%E4%BB%A4%E8%A1%8C&spm=1001.2101.3001.7020
相关 Curl入门 Curl命令 文章目录 Curl命令 Curl基础语法 Curl测试用例 `curl`(CommandLine Uniform R 青旅半醒/ 2024年04月03日 14:16/ 0 赞/ 50 阅读
相关 curl下载(curl下载文件) php写curl下载文件 不是下载到服务器 让浏览器弹出下载文件,在本地下载 求高手解答 这样的用header吧 $file=‘下载地址’; if (file\_ex 深碍√TFBOYSˉ_/ 2023年09月26日 12:57/ 0 赞/ 171 阅读
相关 ElasticSearch快速入门三(curl命令讲解) [API测试工具\_微博开放平台][API]:[https://open.weibo.com/tools/console\][https_open.weibo.com_too 短命女/ 2023年07月12日 05:15/ 0 赞/ 125 阅读
相关 curl > curl is a tool to transfer data from or to a server, using one of the supported protoc 素颜马尾好姑娘i/ 2023年03月01日 13:44/ 0 赞/ 147 阅读
相关 curl 1、开启gzip请求 curl -I http://www.sina.com.cn/ -H Accept-Encoding:gzip,defalte 2、监控网页的 桃扇骨/ 2022年06月14日 04:26/ 0 赞/ 190 阅读
相关 Curl <table> <thead> <tr> <th>参数</th> <th>说明</th> </tr> </thead> <tbody> 超、凢脫俗/ 2022年06月09日 13:39/ 0 赞/ 223 阅读
相关 curl 命令:curl 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统 小咪咪/ 2022年06月04日 10:20/ 0 赞/ 237 阅读
相关 HTTP入门之请求、响应、curl 目录 请求 响应 CURL URL 请求 1. HTTP请求的完整过程 浏览器负责发起请求 服务器 水深无声/ 2022年02月23日 00:42/ 0 赞/ 296 阅读
相关 CURL bool curl\_setopt (int ch, string option, mixed value) curl\_setopt()函数将为一个CURL会话设置选项。 ゝ一纸荒年。/ 2022年01月10日 12:19/ 0 赞/ 319 阅读
相关 curl [curl][]是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。 它支持多种协议,下面举例讲解如何将它用于网站开发。 一、 喜欢ヅ旅行/ 2021年11月17日 15:46/ 0 赞/ 359 阅读
还没有评论,来说两句吧...