转自:http://www.cnblogs.com/z-sm/p/5631352.html
curl命令是个功能强大的网络工具,支持通过http、ftp等方式下载文件、上传文件。还可以用来抓取网页、网络监控等方面的开发,解决开发过程中遇到的问题。
常用参数
curl命令参数很多,这里只列出我曾经用过、特别是在shell脚本中用到过的那些。 -v/--verbose 小写的v参数,用于打印更多信息,包括发送的请求信息,这在调试脚本是特别有用。 -m/--max-time <seconds> 指定处理的最大时长 -H/--header <header> 指定请求头参数 -s/--slient 减少输出的信息,比如进度 --connect-timeout <seconds> 指定尝试连接的最大时长 -x/--proxy <proxyhost[:port]> 指定代理服务器地址和端口,端口默认为1080 -T/--upload-file <file> 指定上传文件路径 -o/--output <file> 指定输出文件名称 -d/--data/--data-ascii <data> 指定POST的内容 --retry <num> 指定重试次数 -e/--referer <URL> 指定引用地址 -I/--head 仅返回头部信息,使用HEAD请求
1、curl安装
sudo apt-get install curl
2、GET请求
curl http://www.baidu.com,回车之后,HTML内容打印在屏幕上;如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地。 curl -i "http://www.baidu.com" 显示全部信息 curl -l "http://www.baidu.com" 只显示头部信息 curl -v "http://www.baidu.com" 显示get请求全过程解析 wget "http://www.baidu.com"也可以
3、下载
curl –o linjiqin http://www.cnblogs.com/linjiqin,执行后可以看到下载进度提示,完成100%后会自动退出了,把网页保存到linjiqin中。
它还有一个大写O的选项,是按照服务器上的文件名保存到本地,如果执行curl –O http://www.cnblogs.com,是会报错的,提示找不到文件名,如果换成curl –O http://www.cnblogs.com/linjiqin/p/5401969.html,就自动保存文件为5401969.html。
4、上传
-T/--upload-file:往服务器上传文件 用法: 上传多个文件 curl -T "img[1-1000].png" ftp://example.com/upload/ 上传多个文件 curl -T "{file1,file2}" http://www.example.com
5、POST方法
-d或--data参数:post请求,用法为curl -d "id=1&name=test" http://example.com/example.php,需把请求的参数和URL分开,同时可以使用curl -d "id=1" -d "name=test" http://example.com/example.php,相当于提交了两个参数。当提交的参数值中有特殊字符就需要先转义。如空格时,就需要转义成%20。 --data-urlencode参数:可以自动转义成特殊字符,无需人工事先转义。 curl --data-urlencode "name=April 1" http://example.com/example.php -F或--form:将本地文件上传到服务器,用法为:curl -F "filename=@/home/test/test.pic" http://example.com/example.php 。千万不能漏掉@符号。
6、设置referer
有时候我们如果直接请求某个URL不能成功,它需要判断referer是否正确,那就可以通过-e或--referer参数模拟
curl --referer http://www.example.com http://www.example.com
7、指定User Agent
-A/--user-agent:伪装成指定的浏览器Chrome访问,用法: curl -A "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36" www.baidu.com
8、伪造cookie
-b或--cookie: 有两种用法,一是指定参数和值:curl --cookie "name=xxx" http://www.example.com ;二是从文件读取:curl -b /cookie.txt http://www.example.com
9、保存cookie
-c/--cookie-jar:curl命令执行后保存操作时生成的cookie到文件: curl -c ./cookie.txt -d username=aaaa -d pwd=****** http://www.example.com
10、定义输出显示内容
-w/--write-out: 可以定义输出的内容,如常用的http码,tcp连接时间,域名解析的时间,握手时间及第一时间响应时间等,非常强大。 1、打印出返回的http码 curl -o /dev/null -s -w %{http_code} "http://www.baidu.com" 2、打印响应时间 curl -o /dev/null -s -w "time_total: %{time_total}\n" "http://www.baidu.com"
相关推荐
使用方法: usage: curl2python.exe [-h] [-o OUTPUT] [-n NAME] input positional arguments: input 指定保存curl命令的文件路径。例子:D:\curl.txt optional arguments: -h, --help show this help message...
例如,可以使用`curl_easy_init()`初始化cURL会话,然后使用`curl_easy_setopt()`设置不同的选项。 3. **文件下载过程**: - 设置URL:`curl_easy_setopt(curl, CURLOPT_URL, ...
cURL 转 Python 代码工具是一个实用的转换器,用于将 cURL 命令行请求转换成等效的 Python 代码。它简化了从 cURL 请求到 Python requests 库的转换过程,使得开发者可以更轻松地将现有的 API 请求集成到 Python ...
这篇博客文章《curl在Android中使用的Demo》将向我们展示如何在Android应用中集成和使用`curl`命令。 首先,我们需要理解`curl`的基本用法。在命令行中,`curl`通过指定URL和各种选项来发起网络请求。例如,发送一...
**cURL转Python** 在Python中,可以使用`requests`库来实现与cURL命令相同的功能。cURL命令通常包含URL、HTTP方法(如GET、POST)、Header信息、查询参数和请求体。将cURL转换为Python代码时,我们需要解析这些元素...
本教程将详细讲解如何使用CURL来抓取网页数据,并结合C++的STL字符串进行分析,最终将提取的数据写入log.txt文件。 首先,我们要了解CURL的基本用法。CURL可以用来发送HTTP请求,获取服务器的响应。例如,使用CURL...
curl命令是Linux、Unix和macOS系统中广泛使用的命令行工具,用于从服务器获取数据或发送数据。通过将curl命令转换成各种编程语言的代码,开发者可以更方便地在项目中复用这些网络请求逻辑,而无需手动重写。 以下是...
本文将详细介绍如何使用`curl`进行简单的GET请求,并将服务器的响应内容保存到本地文件。 首先,我们需要理解GET请求是HTTP协议中最基础的一种请求方法,它用于从服务器获取资源。在`curl`命令中执行GET请求非常...
使用`pcap2curl`,开发者可以轻松地重现网络请求,这对于理解服务器响应,或者在抓取网页数据时复制特定请求非常有用。例如,当遇到需要登录验证或特定请求头的网站时,可以通过`pcap2curl`获取到正确的cURL命令,...
在IT行业中,CURL(Client URL Library)是一个强大的命令行工具,用于传输数据到或从服务器,使用各种网络协议。而这里的"一个CURL写的类"则是将CURL的功能封装成一个面向对象的PHP类,方便开发者进行数据采集和...
本教程将详细讲解如何使用Curl库在C++中获取网络时间。 首先,你需要在你的项目中包含Curl库。你可以从Curl的官方网站下载源代码并编译,然后将其库文件添加到你的项目路径中。在Windows上,这可能涉及设置包含目录...
整个cURL使用流程可以概括为:初始化cURL会话 → 设置目标URL → 设置传输参数(GET或POST)→ 不直接输出结果(可选)→ 执行请求 → 关闭cURL会话。 具体的代码实现如下: ```php $ch = curl_init(); // 初始化...
curl2axios的使用非常简单,它将curl命令的语法解析并生成相应的axios配置对象。这使得开发者能够快速地将curl命令复制粘贴,然后在Node.js应用程序中直接使用axios进行网络请求。例如,一个基本的curl GET请求可以...
然后,使用Hargo解析这个文件,生成对应的curl命令。最后,通过运行这些命令,观察服务器的响应和性能指标,进行分析和优化。 Hargo源代码位于mrichman-hargo-60caad3这个文件中,对于熟悉Go语言的开发者来说,阅读...
在C++代码中,可以使用curl的`curl_easy_init()`、`curl_easy_setopt()`和`curl_easy_perform()`等函数发起网络请求,下载图片。例如,设置`CURLOPT_URL`选项指定要下载的图片地址,`CURLOPT_WRITEFUNCTION`和`...
curl-to-Go是在浏览器中立即将命令转换为Go代码的工具。 它不能保证高保真度的转换,但是对于大多数具有curl样本的API文档来说已经足够了。 这是的姊妹工具,该工具将转换为Go struct类型定义。 要执行相反的操作,...
英文版》和描述《curl命令可用来下载文件,或者模拟http请求,而且支持非常多的协议,这是一篇非常全面的说明,英文文字版》透露了本文所涉及的核心内容是关于Linux环境下curl命令的使用说明。curl是一个功能丰富的...
在Qt工程中,使用curl库发送POST请求并处理JSON数据是一项常见的任务,特别是在与Web服务交互时。这里我们将深入探讨如何实现这一功能。 首先,`curl`是一个强大的命令行工具和库,用于传输数据,支持多种协议,...
演示版为什么使用cURL? Google Chrome的DevTool支持将网络访问更改为cURL命令。 就像下面。 curl '...