cURL为何物?
cURL
是一款流行的标准化工具,用来在命令行上执行HTTP请求。在多数系统中被默认安装。对于web开发者而言有效地使用cURL是一项重要的技能。Curl常被视为调试与自动化HTTP请求的首选。
你需要先理解HTTP协议才能很好地使用curl。如果你对此并不熟悉,可以阅读HTTP与REST新手指南和HTTPWatch的HTTP指南。
GET请求
如果你的系统中已经安装了curl
,你可以发起一个最基础的请求:
curl http://google.com
POST请求
如果你想使用cURL来模拟form的提交,你可以使用POST
请求:
你可以向 GraphQL hub发起一个POST
请求。
curl -H 'Content-Type:application/graphql' -XPOST https://www.graphqlhub.com/graphql?pretty=true -d '{ hn { topStories(limit: 2) { title url } } }'
注意这里有三个可选参数:
-H
- 用于需要传入HTTP头(header)的情形。在本例中将传入'Content-Type'为'application/graphql'的HTTP头。-XPOST
- 用于需要POST
请求的情形。-d
- 用于其后的字符串是POST
body的情形。在本例中,使用GraphGL查询从Hacker News取回了前两位的提交。
谷歌浏览器 "Copy as cURL"功能
谷歌浏览器有一个逆天的功能,可以将任意的HTTP操作复制为cURL请求
打开谷歌浏览器开发者工具
点击'Network'切换按钮
选择一项你需要复制的网络请求
右键并选择"Copy as cURL"(我的版本是在"Copy"下有个二级菜单)
粘贴到"shell"
当你粘贴到shell中时你会发现很冗长,这是因为浏览器发送了巨多HTTP头信息。虽然他们并会都对请求是否会成功其作用,但这是一个好的开始。当你需要验证浏览器cookie或是调试一个受保护的请求时,该方法对你有很大帮助。
curl 'https://www.fullstackreact.com/assets/vendor/functions.js' -H 'if-none-match: W/"5dd95509e78d11579fc427e9f41889d6"' -H 'accept-encoding: gzip, deflate, sdch' -H 'accept-language: en-US,en;q=0.8' -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36' -H 'accept: */*' -H 'cache-control: max-age=0' -H 'authority: www.fullstackreact.com' -H 'cookie: __cfduid=d309889bd8e027d878c2e16e0176e764d1463427161; _ga=GA1.2.135748265.1463427163; _gat=1' -H 'if-modified-since: Tue, 15 Mar 2016 03:37:56 GMT' -H 'referer: https://www.fullstackreact.com/' --compressed
虽然在功能上并非完全一致,但是简化后的请求可以是这样的:
curl 'https://www.fullstackreact.com/assets/vendor/functions.js'
拓展阅读
如果想知道更多有关cURL的只是可以参考:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。