`

curl 使用(转)

 
阅读更多

转自: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"
分享到:
评论

相关推荐

    爬虫工具辅助工具+curl命令转python代码+自动将网络请求转成python代码

    使用方法: usage: curl2python.exe [-h] [-o OUTPUT] [-n NAME] input positional arguments: input 指定保存curl命令的文件路径。例子:D:\curl.txt optional arguments: -h, --help show this help message...

    qt5使用curl实现文件下载的示例程序

    例如,可以使用`curl_easy_init()`初始化cURL会话,然后使用`curl_easy_setopt()`设置不同的选项。 3. **文件下载过程**: - 设置URL:`curl_easy_setopt(curl, CURLOPT_URL, ...

    新版本:cURL转Python代码工具

    cURL 转 Python 代码工具是一个实用的转换器,用于将 cURL 命令行请求转换成等效的 Python 代码。它简化了从 cURL 请求到 Python requests 库的转换过程,使得开发者可以更轻松地将现有的 API 请求集成到 Python ...

    curl在Android中使用的Demo

    这篇博客文章《curl在Android中使用的Demo》将向我们展示如何在Android应用中集成和使用`curl`命令。 首先,我们需要理解`curl`的基本用法。在命令行中,`curl`通过指定URL和各种选项来发起网络请求。例如,发送一...

    cURL到Python Arrdio 易语言 Golang PowerQuery VBA 20210813.zip

    **cURL转Python** 在Python中,可以使用`requests`库来实现与cURL命令相同的功能。cURL命令通常包含URL、HTTP方法(如GET、POST)、Header信息、查询参数和请求体。将cURL转换为Python代码时,我们需要解析这些元素...

    使用CURL抓取网页数据

    本教程将详细讲解如何使用CURL来抓取网页数据,并结合C++的STL字符串进行分析,最终将提取的数据写入log.txt文件。 首先,我们要了解CURL的基本用法。CURL可以用来发送HTTP请求,获取服务器的响应。例如,使用CURL...

    linux-一个将curl命令转为PythonNodejsRPHPGo代码的工具

    curl命令是Linux、Unix和macOS系统中广泛使用的命令行工具,用于从服务器获取数据或发送数据。通过将curl命令转换成各种编程语言的代码,开发者可以更方便地在项目中复用这些网络请求逻辑,而无需手动重写。 以下是...

    简单使用curl进行get请求并将服务器返回存进本地文件

    本文将详细介绍如何使用`curl`进行简单的GET请求,并将服务器的响应内容保存到本地文件。 首先,我们需要理解GET请求是HTTP协议中最基础的一种请求方法,它用于从服务器获取资源。在`curl`命令中执行GET请求非常...

    pcap2curl读取数据包捕获提取HTTP请求并将其转换为cURL命令进行重放

    使用`pcap2curl`,开发者可以轻松地重现网络请求,这对于理解服务器响应,或者在抓取网页数据时复制特定请求非常有用。例如,当遇到需要登录验证或特定请求头的网站时,可以通过`pcap2curl`获取到正确的cURL命令,...

    CURL写的一个类,可用于数据采集并实现编码转换~!

    在IT行业中,CURL(Client URL Library)是一个强大的命令行工具,用于传输数据到或从服务器,使用各种网络协议。而这里的"一个CURL写的类"则是将CURL的功能封装成一个面向对象的PHP类,方便开发者进行数据采集和...

    Curl获取网络时间.zip_Curl获取网络时间_curl 时间_curl 网络时间_网络时间 curl_网络时间获取

    本教程将详细讲解如何使用Curl库在C++中获取网络时间。 首先,你需要在你的项目中包含Curl库。你可以从Curl的官方网站下载源代码并编译,然后将其库文件添加到你的项目路径中。在Windows上,这可能涉及设置包含目录...

    php curl 使用

    整个cURL使用流程可以概括为:初始化cURL会话 → 设置目标URL → 设置传输参数(GET或POST)→ 不直接输出结果(可选)→ 执行请求 → 关闭cURL会话。 具体的代码实现如下: ```php $ch = curl_init(); // 初始化...

    curl2axios:一个将curl请求转换为Node.js axios请求的小实用程序

    curl2axios的使用非常简单,它将curl命令的语法解析并生成相应的axios配置对象。这使得开发者能够快速地将curl命令复制粘贴,然后在Node.js应用程序中直接使用axios进行网络请求。例如,一个基本的curl GET请求可以...

    Go-Hargo解析HAR文件可以转换为curl格式并作为负载测试驱动程序

    然后,使用Hargo解析这个文件,生成对应的curl命令。最后,通过运行这些命令,观察服务器的响应和性能指标,进行分析和优化。 Hargo源代码位于mrichman-hargo-60caad3这个文件中,对于熟悉Go语言的开发者来说,阅读...

    xcode下使用curl下载图片并保存

    在C++代码中,可以使用curl的`curl_easy_init()`、`curl_easy_setopt()`和`curl_easy_perform()`等函数发起网络请求,下载图片。例如,设置`CURLOPT_URL`选项指定要下载的图片地址,`CURLOPT_WRITEFUNCTION`和`...

    curl-to-go:在浏览器中将curl命令转换为Go代码

    curl-to-Go是在浏览器中立即将命令转换为Go代码的工具。 它不能保证高保真度的转换,但是对于大多数具有curl样本的API文档来说已经足够了。 这是的姊妹工具,该工具将转换为Go struct类型定义。 要执行相反的操作,...

    everything-curl linux命令curl的用法 英文版

    英文版》和描述《curl命令可用来下载文件,或者模拟http请求,而且支持非常多的协议,这是一篇非常全面的说明,英文文字版》透露了本文所涉及的核心内容是关于Linux环境下curl命令的使用说明。curl是一个功能丰富的...

    Qt工程中用curl发送post请求,发送json返回json

    在Qt工程中,使用curl库发送POST请求并处理JSON数据是一项常见的任务,特别是在与Web服务交互时。这里我们将深入探讨如何实现这一功能。 首先,`curl`是一个强大的命令行工具和库,用于传输数据,支持多种协议,...

    cURLtoSwagger:从cURL命令转换为YAML格式。 与Swagger兼容

    演示版为什么使用cURL? Google Chrome的DevTool支持将网络访问更改为cURL命令。 就像下面。 curl '...

Global site tag (gtag.js) - Google Analytics