2013-08-05 39 views
0

是否有可能将HTTP请求的主体作为数据流存储在内存中?内存中的HTTP BODY而不是写入磁盘

具体而言,我使用libcurl C库来编写几个HTTP请求,其思想是将HTTP响应的主体放在内存中,而不是写入磁盘。

各种curl_easy_setopt选项(CURLOPT_WRITEFUNCTION,CURLOPT_WRITEDATA)实际上将响应的主体写入文件。我想要的是能够直接处理身体中的数据流,而不管它是什么。

某事的调整:

char* dataStream = HTTP_RESPONSE_BODY 

这是因为HTTP身体会转嫁到作进一步处理别的事情,写磁盘和读回需要时间,特别是对于大型文件。我知道我可能没有足够的内存来保存大量数据,但它肯定会比写入磁盘和再次读取更快。

回答

3

你可以告诉卷曲将数据传递到通过使匹配的原型由你自己定义的函数:size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp);,并呼吁:curl_easy_setopt(easyhandle, CURLOPT_WRITEFUNCTION, write_data);

这在官方的libcurl教程中提到的:http://curl.haxx.se/libcurl/c/libcurl-tutorial.html

+0

谢谢!将尝试一下。 – plaknas

+0

http://curl.haxx.se/libcurl/c/getinmemory.html –

相关问题