18,356
社区成员
发帖
与我相关
我的任务
分享
struct MemoryStruct {
char *memory;
size_t size;
};
static size_t
WriteMemoryCallback(void *contents, size_t size, size_t nmemb, void *userp)
{
size_t realsize = size * nmemb;
struct MemoryStruct *mem = (struct MemoryStruct *)userp;
mem->memory = (char*)realloc(mem->memory, mem->size + realsize + 1);
if(mem->memory == NULL) {
/* out of memory! */
printf("not enough memory (realloc returned NULL)\n");
return 0;
}
memcpy(&(mem->memory[mem->size]), contents, realsize);
mem->size += realsize;
mem->memory[mem->size] = 0;
return realsize;
//return size*nmemb;
}
void test1()
{
CURLcode res;
// curl_global_init(CURL_GLOBAL_ALL);
CURL* curl = curl_easy_init();
if( curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "https://market.fx678red.com/fx678/1708/kline.php?ms=532680149fe49acc1eafc9583bf47751&excode=SHFE&code=RBXX01&type=day&t=0&time=1508396618&key=a3b896e4e60373fd40aa4537bc35e034");
//curl_easy_setopt(curl, CURLOPT_URL, "https://market.fx678red.com/fx678/1708/kline.php?ms=532680149fe49acc1eafc9583bf47751&excode=SHFE&code=BUXX08&type=day&t=0&time=1508735696&key=9dc4bae175c90c0650eb58d0f8646c87");
struct MemoryStruct chunk;
chunk.memory = (char*)malloc(1);
chunk.size = 0;
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
curl_easy_setopt(curl,CURLOPT_WRITEDATA,(void *)&chunk);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "libcurl-agent/1.0");
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 3);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 3);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
test1();
return 0;
}
ontinuing anyway.
* STATE: PROTOCONNECT => DO handle 0x9336d0; line 1626 (connection #0)
> GET /fx678/1708/kline.php?ms=532680149fe49acc1eafc9583bf47751&excode=SHFE&code
=RBXX01&type=day&t=0&time=1508396618&key=a3b896e4e60373fd40aa4537bc35e034 HTTP/1
.1
Host: market.fx678red.com
User-Agent: libcurl-agent/1.0
Accept: */*
* STATE: DO => DO_DONE handle 0x9336d0; line 1688 (connection #0)
* STATE: DO_DONE => WAITPERFORM handle 0x9336d0; line 1813 (connection #0)
* STATE: WAITPERFORM => PERFORM handle 0x9336d0; line 1823 (connection #0)
* HTTP 1.1 or later with persistent connection, pipelining supported
< HTTP/1.1 200 OK
* Server nginx is not blacklisted
< Server: nginx
< Date: Tue, 24 Oct 2017 02:39:30 GMT
< Content-Type: text/html; charset=UTF-8
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Accept-Encoding
<