本文共 3397 字,大约阅读时间需要 11 分钟。
http://blog.csdn.net/shenlanzifa/article/details/22731483
curl_easy_getinfo() 函数原型声明如下:
#include <curl/curl.h>
CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ... );
#include <stdio.h>
#include <curl/curl.h>
#include <stdlib.h>
#include <string.h>
int
main(
void
)
{
CURL *curl;
CURLcode res;
FILE
*fp;
if
(!(fp =
fopen
(
"info.html"
,
"w+"
))) {
perror
(
"fopen error:"
);
exit
(EXIT_FAILURE);
}
curl = curl_easy_init();
if
(curl) {
curl_easy_setopt(curl, CURLOPT_URL,
""
);
res = curl_easy_perform(curl);
if
(CURLE_OK == res) {
char
*contype;
res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &contype);
if
((CURLE_OK == res) && ct)
fwrite
(contype, 1,
strlen
(contype), fp);
fwrite
(
"\n\0"
, 1, 1, fp);
//为了在 vi 里看起来完全正常,需要添加换行符和 NULL
}
close (fp);
curl_easy_cleanup(curl);
}
return
0;
}
$ cat info.html text/html;charset=gb2312
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
#include <curl/easy.h>
static
size_t
save_header(
void
*ptr,
size_t
size,
size_t
nmemb,
void
*data)
{
return
(
size_t
)(size * nmemb);
}
int
main(
void
)
{
char
ftpurl[] =
""
;
CURL *curl;
CURLcode res;
const
time_t
filetime;
const
double
filesize;
const
char
*filename =
strrchr
(ftpurl,
'/'
) + 1;
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if
(curl) {
curl_easy_setopt(curl, CURLOPT_URL, ftpurl);
curl_easy_setopt(curl, CURLOPT_NOBODY, 1L);
curl_easy_setopt(curl, CURLOPT_FILETIME, 1L);
curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, save_header);
curl_easy_setopt(curl, CURLOPT_HEADER, 0L);
//curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
curl_easy_perform(curl);
if
(res != CURLE_OK) {
res = curl_easy_getinfo(curl, CURLINFO_FILETIME, &filetime);
if
((CURLE_OK == res) && filetime)
printf
(
"filetime %s: %s"
, filename,
ctime
(&filetime));
res = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &filesize);
if
((CURLE_OK == res) && (filesize > 0))
printf
(
"filesize %s: %0.0f bytes\n"
, filename, filesize);
}
else
{
fprintf
(stderr,
"curl told us %d\n"
, res);
}
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return
0;
}
beyes@debian:~/C/curl$ ./getftpinfo Last-Modified: Mon, 25 Apr 2011 15:26:56 GMT Content-Length: 1758 Accept-ranges: bytes filetime favicon.ico: Mon Apr 25 11:26:56 2011 filesize favicon.ico: 1758 bytes
原文:http://www.groad.net/bbs/thread-3933-1-1.html