webservice type大写参数_cURL7.72.0初体验(参数写法)

本文详细介绍了curl命令行工具的使用,包括其在不同操作系统中的行为、选项的使用,如-v(详细模式)和-L(重定向)。还提到了参数的传递,如在HTTP POST请求中使用数据。此外,文章讨论了如何处理包含空格的参数,以及curl的历史和发展,强调了版本之间的选项差异。
摘要由CSDN通过智能技术生成

f5097705db3f130fdb1a38bf815768b0.png

“不用等到日出,现在就想对你告白” 在所有特质中,最吸引我的还是温柔,因为它是上天赠予的礼物,我喜欢温柔的人,也喜欢愿意对我温柔的人。

哒哒哒

这个东西其实就是我现在的写法就是最正宗的写法,就是小写C,大写URL,一定要写对,显得你专业不说,其实更是对软件的一种敬意吧。

因为看见一本这个有趣的书,我就没有干什么插文档的动作,就是实验一下吧。我多次编译东西也可以过这个东西。让我写写看。如果你也愿意探索请和我一起来。

b4e440837637e04c105fa40312b50d19.png

我的环境是Mac,自己你们对照一下版本哦

a5a46a09d7073ca9565df5077a3301fa.png

有了brew直接安装,很快吧。

719cd8693a41c1923b14c13aa4ea1b8d.png

我第一次输入错了

我们其实可以看到一些有趣的东西

就是brew安装软件在哪些地方找。自己看看

0cda2dae840b645671876c36486b3bd3.png

看看安装目录       

49882e565c6d0b4b189694aca9678c9e.png

可以直接help

--help,标准的unix长参数写法


目前为止我都是一些习惯性的动作,还没有开始说什么~ 

命令行、引号和别名

curl可以用于不同的命令行、shell和命令提示符。它们具有各自的限制、规则和需要遵循的指南。curl的目标是能够顺畅地在这些环境中运行,但有时你的命令行系统会与其他人使用的或文档中记录的不同。

例如,不同的命令行系统中引号的用法可能存在差异。使用引号将命令行参数括起来,就可以在参数中嵌入空格和特殊符号。在大多数Unix风格的shell中,你可以使用双引号(")和单引号('),具体取决于你是否允许在字符串中使用变量扩展,但Windows不支持单引号。

在Windows的PowerShell这样的环境中,当用户输入curl时,命令行系统可能会优先使用其他工具代替curl。要想在PowerShell中正确使用curl,需要输入它的全名,包括扩展名:“curl.exe”。

不同的命令行系统允许的最大命令行长度也不相同,并强制用户限制单个命令行的数据量。curl提供了-K选项,以通过文件或标准输入(stdin)来提供命令行选项

种瓜得瓜,种豆得豆

curl很少会自己决定做什么,它试图在最大程度上让你做自己想做的。你给它什么,它就会处理什么。如果你提供一个拼写错误的选项,那么它可能会做出预想不到的事情。如果你给它一个不合法的URL,那么它仍然会继续处理它。这意味着,你可以通过选项传给它一些疯狂的数据,它会在传输操作中传递这些数据。

这是一种设计选择,它允许你调整curl如何进行协议通信,让你能够以最具创造性的方式与服务器交互。

短选项

命令行选项可以将你想要用curl执行的任务的信息传给curl。例如,你可以通过-v选项让curl切换到详细(verbose)模式。

        curl -v http://example.com
✘ yunshenwuji@yunswj  ~  curl -v http://example.com*   Trying 93.184.216.34...* TCP_NODELAY set* Connected to example.com (93.184.216.34) port 80 (#0)> GET / HTTP/1.1> Host: example.com> User-Agent: curl/7.64.1> Accept: */*>< HTTP/1.1 200 OK< Age: 428953< Cache-Control: max-age=604800< Content-Type: text/html; charset=UTF-8< Date: Sun, 11 Oct 2020 13:55:21 GMT< Etag: "3147526947+ident"< Expires: Sun, 18 Oct 2020 13:55:21 GMT< Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT< Server: ECS (sjc/4FB8)< Vary: Accept-Encoding< X-Cache: HIT< Content-Length: 1256<    Example Domain    "utf-8" />    "Content-type" content=    "viewport" content=    ="text/css">    body {        background-color: #f0f0f2;        margin: 0;        padding: 0;        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
} div { width: 600px; margin: 5em auto; padding: 2em; background-color: #fdfdff; border-radius: 0.5em; box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02); } a:link, a:visited { color: #38488f; text-decoration: none; } @media (max-width: 700px) { div { margin: 0 auto; width: auto; } }

Example Domain

This domain is for use in illustrative examples in documents. You may use this

domain in literature without prior coordination or asking for permission.

"https://www.iana.org/domains/example"

>More information...
* Connection #0 to host example.com left intact* Closing connection 0

-v是一种“短选项”,即一个减号后面跟一个字母。很多选项属于切换开关,用于启用某些功能或切换两个已知状态。指定对应的选项名称即可使用这些选项。你也可以在减号后面组合使用多个单字母选项。例如,让curl打开详细模式并进行HTTP重定向:

     curl -vL http://example.co

952c8b67f7eda75b3ab79b38b2c32a03.png

这个是页面

30bdc43e5e684ad30f0661543935d918.png

发现(command)WIN+D是分屏

curl的命令行解析器会解析整行命令,你可以将选项放在任意位置,它们甚至可以出现在URL之后。

 curl http://example.com -Lv

当然,你也可以单独指定短选项,如下所示。

       curl -v -L http://example.com
*   Trying 93.184.216.34...* TCP_NODELAY set* Connected to example.com (93.184.216.34) port 80 (#0)> GET / HTTP/1.1> Host: example.com> User-Agent: curl/7.64.1> Accept: */*>< HTTP/1.1 200 OK< Age: 429237< Cache-Control: max-age=604800< Content-Type: text/html; charset=UTF-8< Date: Sun, 11 Oct 2020 14:00:03 GMT< Etag: "3147526947+ident"< Expires: Sun, 18 Oct 2020 14:00:03 GMT< Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT< Server: ECS (sjc/16DD)< Vary: Accept-Encoding< X-Cache: HIT< Content-Length: 1256<    Example Domain    "utf-8" />    "Content-type" content=    "viewport" content=    ="text/css">    body {        background-color: #f0f0f2;        margin: 0;        padding: 0;        font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
} div { width: 600px; margin: 5em auto; padding: 2em; background-color: #fdfdff; border-radius: 0.5em; box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02); } a:link, a:visited { color: #38488f; text-decoration: none; } @media (max-width: 700px) { div { margin: 0 auto; width: auto; } }

Example Domain

This domain is for use in illustrative examples in documents. You may use this

domain in literature without prior coordination or asking for permission.

"https://www.iana.org/domains/example"

>More information...
* Connection #0 to host example.com left intact* Closing connection 0

长选项

短选项使用起来非常方便,因为它们的名字很简短。但因为字母的数量有限,需要用到的选项又比较多,所以并非所有选项都可以使用单个字母来表示,于是就有了长选项。另外,为了方便,也为了让脚本更易于阅读,大多数短选项都有对应的长选项别名。

长选项使用两个减号(或者称为破折号),后面跟上选项名,而且每两个减号后面只能跟一个选项名。使用长选项打开详细模式如下所示。

        curl --verbose http://example.com

使用长选项进行HTTP重定向如下所示。

  curl --verbose --location http://example.com
* IDN support not present, can't parse Unicode domains*   Trying 93.184.216.34...* TCP_NODELAY set* Connected to example.com (93.184.216.34) port 80 (#0)> GET / HTTP/1.1> Host: example.com> User-Agent: curl/7.64.1> Accept: */*>< HTTP/1.1 400 Bad Request< Content-Type: text/html< Content-Length: 349< Connection: close< Date: Sun, 11 Oct 2020 14:02:13 GMT< Server: ECSF (sjc/4E5D)<xml version="1.0" encoding="iso-8859-1"?>/span>         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">  <head>    400 - Bad Request  head>  <body>    

400 - Bad Request

body>html>* Closing connection 0

选项的参数

并非所有选项都只用于启用或禁用某项功能。对于一些选项,你需要向它们传递一些数据,如用户名或文件路径。你需要先指定选项,然后给出参数,中间用空格分隔。例如,可以通过HTTP POST将一个字符串发送给服务器。

       curl -d arbitrary http://example.com

你也可以使用长选项。   

     curl --data arbitrary http://example.com

实际上,如果使用带参数的短选项,可以不使用空格进行分隔。  

      curl -darbitrary http://example.com

带空格的参数

有时你会想要向选项传递参数,而且参数中包含了一个或多个空格。例如,你可能想要将user-agent字段设置为I am your father,包括当中的三个空格。此时你需要给字符串加上引号。使用的引号因不同的shell或命令提示符而异,但大多数情况下可以使用双引号。

      curl -A "I am your father" http://example.com

如果没有使用引号,则如下所示。

  curl -A I am your father http://example.com

这样一来,curl只会将“I”作为user-agent字符串,剩下的字符串“am”“your”等将被视为单独的URL,因为它们不是以-开头,这表示它们不是选项,而curl只处理选项和URL。

如果字符串本身包含了双引号,比如想要向服务器发送JSON字符串(这种情况很常见),你可能需要使用单引号(但在Windows系统上使用单引号可能不行)。发送JSON字符串{ "name":"Darth" }就是一个很好的示例。

      curl -d '{ "name": "Darth" }' http://example.com

如果想要避免使用单引号,则可以通过文件将数据传给curl,这样就无须使用额外的引用。假设json文件包含了上述数据:

        curl -d @json http://example.com

负选项

对于开关选项,既可以用它们打开某些功能,也可以通过它们关闭功能。你也可以使用长选项,在选项名前面加上“no-”前缀。例如,关闭详细模式。

        curl --no-verbose http://example.com

不同版本的选项

curl最早于1998年出现在命令行中。它被用于访问指定的URL,有的没有使用选项,有的使用一个或多个选项。

从那时起,我们加入了更多选项。我们一直在添加选项,几乎每个新版本都会添加一个或几个新选项,以便用户可以更灵活地使用curl。

curl每八周就会发布一个新版本,因此不可避免的是,你并不总能使用到最新版的curl。有时你使用的可能是几年前的版本。

本书中所描述的命令行选项都是在某个时间点添加到curl中的,其中只有很小一部分是在1998年的首个版本中发布的。你可以检查一下自己的curl版本,并交叉检查curl手册页,看看相应的选项是在什么时候添加的。如果要将基于新curl版本编写的curl命令行用于带有旧版本curl的操作系统,那么这一点尤为重要。

curl的开发人员努力不去改变已有行为。1998年、2003年或2010年编写的命令行都可以不经修改直接使用现今的curl来运行。

cc288e6f356533a6975563c81de6a890.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值