在curl_easy_perform之后接收数据
我有以下问题:如何在 char *
缓冲区中写入使用 http-response 返回的数据?我找到了几种方法:
- 使用
CURLOPT_WRITEDATA
或CURLOPT_WRITEFUNCTION
。但CURLOPT_WRITEDATA
需要文件指针(FILE *
)。在我看来,将CURLOPT_WRITEFUNCTION
与回调函数一起使用似乎很奇怪...... - 使用
curl_easy_send
和curl_easy_recv
。但在这种情况下,我需要用手编写所有POST
标头...
还有其他更优雅的方法吗?例如,将 char *
缓冲区指针传递给某个函数以获取 http 响应。
I have the following question: how can i write data returning with http-response in char *
buffer? I've found several approaches:
- use
CURLOPT_WRITEDATA
orCURLOPT_WRITEFUNCTION
. butCURLOPT_WRITEDATA
requires file pointer (FILE *
). use ofCURLOPT_WRITEFUNCTION
with callback function seems to me as quirk... - use
curl_easy_send
andcurl_easy_recv
. but in this case i'll need to write allPOST
headers with hands...
Is there some other, more elegant approach? e.g. pass char *
buffer pointer into some function to get http response in.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实际上 CURLOPT_WRITEDATA 和 CURLOPT_WRITEFUNCTION 可以与任何指针类型一起使用。只要您的函数与该指针类型兼容。
例如:
Actually CURLOPT_WRITEDATA and CURLOPT_WRITEFUNCTION can be used with any pointer type. As long as your function is compatible with that pointer type.
For example: