有熟悉用libcurl在linux下获取http请求的大牛么,最好能有示例

有熟悉用libcurl在linux下获取http请求的大牛么,最好能有示例,第1张

一、get请求

curl "http://www.baidu.com" 如果这里的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"也可以

二、post请求

curl -d "param1=value1&param2=value2" "http://www.baidu.com"

#include <io.h>

#include "curl/curl.h"

#pragma comment(lib, "ws2_32.lib")

#pragma comment ( lib, "libcurl.lib" )

#pragma comment ( lib, "ws2_32.lib" )

#pragma comment ( lib, "winmm.lib" )

#pragma comment ( lib, "wldap32.lib" )

//这是libcurl接收数据的回调函数,相当于recv的死循环

//其中stream可以自定义数据类型,这里我传入的是文件保存路径

static size_t write_callback( void *ptr, size_t size, size_t nmemb, void *stream )

{

int len = size * nmemb

int written = len

FILE *fp = NULL

if ( access( (char*)stream, 0 ) == -1 )

{

fp = fopen( (char*) stream, "wb" )

}

else

{

fp = fopen( (char*) stream, "ab" )

}

if (fp)

{

fwrite( ptr, size, nmemb, fp )

}

return written

}

int GetUrl( const char *url, char *savepath )

{

CURL *curl

CURLcode res

struct curl_slist *chunk = NULL

curl = curl_easy_init()

if ( curl ) {

curl_easy_setopt( curl, CURLOPT_VERBOSE, 0L )

curl_easy_setopt( curl, CURLOPT_URL, url )

//指定回调函数

curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, write_callback)

//这个变量可作为接收或传递数据的作用

curl_easy_setopt( curl, CURLOPT_WRITEDATA, savepath )

res = curl_easy_perform( curl )

if (res == CURLE_OK)

{

return 1

}

return 0

}

}

int main( void )

{

if ( GetUrl( "t.sina.com.cn", "c:/1.txt" ) )

{

printf( "OK" )

}

return 0

}

可以。

CURLOPT_PROTOCOLS

CURLPROTO_* 的位域指。如果被启用,位域值会限定libcurl在传输过程中有哪些可使用的协议。这将允许你在编译libcurl时支持众多协议,但是限制只是用它们中被允许使用的一个子集。默认libcurl将会使用全部它支持的协议。参见 CURLOPT_REDIR_PROTOCOLS .

可用的协议选项为:CURLPROTO_HTTP、CURLPROTO_HTTPS、CURLPROTO_FTP、CURLPROTO_FTPS、CURLPROTO_SCP、CURLPROTO_SFTP、CURLPROTO_TELNET、CURLPROTO_LDAP、CURLPROTO_LDAPS、CURLPROTO_DICT、CURLPROTO_FILE、CURLPROTO_TFTP、CURLPROTO_ALL

对了,可定能得到返回值


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7515520.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-06
下一篇2023-04-06

发表评论

登录后才能评论

评论列表(0条)

    保存