【curl】上传下载工具Curl 使用笔记(附中文手册)

                                                           上传下载工具Curl 使用笔记
                                                                                                                                   (附中文手册)

1.what is curl

curl是利用URL语法在命令行方式下工作的文件传输工具。curl是瑞典curl组织开发的开源项目。
它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。

curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证,HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传,上载文件断点续传,,http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器,,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。

其他废话见百度百科curl 


2.简单命令

列出ftp服务器上的目录列表:
curl ftp://192.168.3.108/ -u tzf:tzf    #简洁写法

只列出目录,不显示进度条
curl ftp://192.168.3.108 -u tzf:tzf -s

下载一个文件:
curl ftp://192.168.3.108/0-01.prt -u tzf:tzf -o f:/tt.prt

上载一个文件:
curl -u tzf:tzf -T c:/setup.log ftp://192.168.3.108/

从服务器上删除文件(使用curl传递ftp协议的DELE命令
curl -u tzf:tzf ftp://192.168.3.108/ -X 'DELE /tzf/setup.log'



另外curl不支持递归下载,不过可以用数组方式下载文件,比如我们要下载1-10.gif连续命名的文件:

curl –u name:passwd ftp://malu.me/img/[1-10].gif –O    #O字母大写

要连续下载多个文件:

curl –u name:passwd ftp://malu.me/img/[one,two,three].jpg –O #O字母大写


3.示例代码(QT):

// 1.4 上传数据
	//curl -u tzf:tzf -T c:/setup.log ftp://192.168.3.108/
	QString scmd = QString("%1 -u %2:%3 -T %4 %5").arg(curlpath, user, pass, sDesPath, sftppath);

	QProcess proc(0);
	retcode = proc.execute(scmd); 

	if (retcode != -1)
	{
	}



4.资料链接

    1.官网:http://curl.haxx.se/

     2.我整理的文档(中文用户手册、基本命令、curl.exe


5.个人拙见

   开发中拿这个小工具做了测试,效果不错,我用的是FTP协议,但是上传速度实在太慢,导致这个程序假死。最终放弃,改用了数据流上传方式。

有使用过的朋友们,欢迎留言说一样上传下载速度问题。感谢之!



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在 Qt 中使用 cURL 库需要进行以下几个步骤: 1. 下载 cURL 库并编译。你可以从 cURL 官网下载源代码,并按照官方档进行编译。编译成功后,你需要将编译好的库件复制到你的 Qt 项目中。 2. 在 Qt 项目中包含 cURL 库的头件。你需要在你的 Qt 项目中添加以下代码: ```c++ extern "C" { #include <curl/curl.h> } ``` 这将告诉编译器在编译时包含 cURL 库的头件。 3. 使用 cURL 库进行 HTTP 请求。以下是一个示例代码: ```c++ #include <QString> #include <curl/curl.h> size_t writeFunction(void *ptr, size_t size, size_t nmemb, QString *data) { data->append(static_cast<char *>(ptr), size * nmemb); return size * nmemb; } QString getHttpData(const QString &url) { QString data; CURL *curl = curl_easy_init(); if (curl) { curl_easy_setopt(curl, CURLOPT_URL, url.toStdString().c_str()); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writeFunction); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &data); CURLcode res = curl_easy_perform(curl); if (res != CURLE_OK) { // 处理错误 } curl_easy_cleanup(curl); } return data; } ``` 在这个示例中,我们定义了一个 `getHttpData` 函数,它使用 cURL 库进行 HTTP GET 请求,并返回响应数据。在 `curl_easy_setopt` 函数中,我们设置了 `CURLOPT_URL` 选项来指定请求的 URL,设置了 `CURLOPT_FOLLOWLOCATION` 选项来启用重定向,设置了 `CURLOPT_WRITEFUNCTION` 和 `CURLOPT_WRITEDATA` 选项来设置回调函数来处理响应数据。 这就是使用 cURL 库进行 HTTP 请求的基本步骤。你可以根据需要设置其他选项来进行更高级的操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值