原文地址html
cURL
是一款流行的标准化工具,用来在命令行上执行HTTP请求。在多数系统中被默认安装。对于web开发者而言有效地使用cURL是一项重要的技能。Curl常被视为调试与自动化HTTP请求的首选。react
你须要先理解HTTP协议才能很好地使用curl。若是你对此并不熟悉,能够阅读HTTP与REST新手指南和HTTPWatch的HTTP指南。git
若是你的系统中已经安装了curl
,你能够发起一个最基础的请求:github
curl http://google.com
若是你想使用cURL来模拟form的提交,你能够使用POST
请求:
你能够向 GraphQL hub发起一个POST
请求。web
curl -H 'Content-Type:application/graphql' -XPOST https://www.graphqlhub.com/graphql?pretty=true -d '{ hn { topStories(limit: 2) { title url } } }'
注意这里有三个可选参数:shell
-H
- 用于须要传入HTTP头(header)的情形。在本例中将传入'Content-Type'为'application/graphql'的HTTP头。浏览器
-XPOST
- 用于须要POST
请求的情形。cookie
-d
- 用于其后的字符串是POST
body的情形。在本例中,使用GraphGL查询从Hacker News取回了前两位的提交。网络
谷歌浏览器有一个逆天的功能,能够将任意的HTTP操做复制为cURL请求app
打开谷歌浏览器开发者工具
点击'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的只是能够参考: