curl+libcurl简化你的网络请求!
curl 是一个linux工具,通过命令行来实现其强大的功能。但通过libcurl,可以在各种开发环境中通过编码的 形式实现curl上传、下载功能,其中涉及GET、PUT、POST、DELETE等方法。cURL支持的通信协议有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。可谓是支持力度相当大的一个工具了。
curl命令行工具:Linux Curl命令详解教程 | myfreax
curl命令用法_curl 命令_追梦菜鸟的博客-CSDN博客
curl 的用法指南 - 阮一峰的网络日志 (ruanyifeng.com)
curl网站开发指南 - 阮一峰的网络日志 (ruanyifeng.com)
curl -o 文件名 网址 可以把对应网页保存下来到文件里
-o 保存成文件
-F是用来传二进制文件的 curl -F ‘xx文件’ 地址/发post请求传表单数据,上面实现就是用到这个参数
-H 用来加http请求头的
做断点续传可以用-C去恢复上次的传输进度
libcurl库学习
(转)libcurl库使用方法,好长,好详细。 - _浪潮之巅.☆ - 博客园 (cnblogs.com) 感觉光看这个就非常的详细了
curl 简单实例 (c代码通过 curl-url 实现信息获取)_curl c_我若成精的博客-CSDN博客
Libcurl使用入门教程_libcurl c++ example_每天看一遍,防止恋爱&&堕落的博客-CSDN博客
可以用libcurl库函数去操作完成curl命令
#include <stdio.h>
#include <curl/curl.h>
int main() {
CURL *curl;
CURLcode res;
char *url = "http://www.baidu.com";
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, url);
res = curl_easy_perform(curl);
if(res == CURLE_OK)
printf("Request succeeded!\n");
else
printf("Request failed: %s\n", curl_easy_strerror(res));
curl_easy_cleanup(curl);
}
printf("over!\n");
return 0;
}
gcc -o main pp.c -lcurl编译
使用最开始要初始化libcurl,可以用curl_global_init做全局配置他只能调用一次,自己不调用的话系统在curl_easy_init()前会自动调用,(多线程会有问题,最好手动调)这个demo是使用curl_easy_init()
函数初始化libcurl库,并使用curl_easy_setopt()
函数设置要执行的URL。发起http get请求获取相应的请求状态,用curl_easy_perform()
函数执行实际的请求,并返回状态码。最后,curl_easy_cleanup()
函数释放curl库。
用libcurl做sftp去传东西,有关密码的也能用cur_easy_setopt这个flag:CURLOPT_USERPWD去做密码,私钥可以用CURLOPT_KEYPASSWD去设置