[译]cURL入门使用指南

news/2024/7/3 23:48:34

原文地址

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请求

图片描述

  1. 打开谷歌浏览器开发者工具

  2. 点击'Network'切换按钮

  3. 选择一项你需要复制的网络请求

  4. 右键并选择"Copy as cURL"(我的版本是在"Copy"下有个二级菜单)

  5. 粘贴到"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的只是可以参考:

  • curl官方入门

  • Github API curl入门


http://www.niftyadmin.cn/n/1907009.html

相关文章

PTA(Advanced Level) 1001:A+B Format(C语言实现)

PTA(Advanced Level) 1001:AB Format(C语言实现) 分析: ①ab0,输出0; ②当最后有三位数时不输出‘,’,例如111000234111,234,而不是输出 ,111,234。 #inclu…

【CSS3练习】transform 2d变形实例练习

transform 2d变形实例练习&#xff1a;练习了旋转 倾斜 缩放的功能 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>transform</title><style>.box{background-color: #000;width: 100px;…

JS框架之收集专帖

1.KNOCKOUT.JS 官网&#xff1a;http://knockoutjs.com/ 学习&#xff1a;http://www.cnblogs.com/TomXu/archive/2011/11/21/2257154.html 2.WinJS 3.EMBER.JS 4.BACKBONE.JS

PTA(Advanced Level) 1005:Spell It Right(C语言实现)

PTA(Advanced Level) 1005&#xff1a;Spell It Right&#xff08;C语言实现&#xff09; 分析&#xff1a; sprintf(str,"%d",n);//将整数n转换为字符串存储到字符数组str中 sscanf(str,"%s",&n);//将字符串str转换为整型变量存储到n中 #include &l…

Android程序猿必掌握的sqlite数据库连表查询

SQL查询的基本原理&#xff1a;两种情况介绍。 第一、 单表查询&#xff1a;依据WHERE条件过滤表中的记录&#xff0c;形成中间表&#xff08;这个中间表对用户是不可见的&#xff09;&#xff1b;然后依据SELECT的选择列选择对应的列进行返回终于结果。 第二、 两表连接查…

PTA(Basic Level) 1077:互评成绩计算(C语言实现)

PTA(Basic Level) 1077&#xff1a;互评成绩计算&#xff08;C语言实现&#xff09; #include <stdio.h>int main() {int i,j,n,m,count,score,min,max,tea;double average,sum;scanf("%d%d",&n,&m);for(i0; i<n; i){scanf("%d",&te…

配置Tomcat

1.一定要配置好环境变量 否则有可能出现 invalid request 字样关于配置环境变量的网站&#xff1a;http://jingyan.baidu.com/article/8065f87fcc0f182330249841.html记住&#xff1a;一定要严格按照步骤进行2.如果配置好了 出现 No output folder字样 &#xff0c;则是对于tom…

PTA(Basic Level) 1078:字符串压缩与解压(C语言实现)

PTA(Basic Level) 1078&#xff1a;字符串压缩与解压&#xff08;C语言实现&#xff09; #include <stdio.h> #include <string.h> #include <ctype.h> void compress(char s[]) {int i,count1,n;nstrlen(s);for(i1; i<n; i)//i<n,最后一个字母也要输…