【发布时间】:2013-09-10 09:02:40
【问题描述】:
我在 c++ 中为 curl 库 API 编写了包装器。我正在尝试在 c++ 中将 if 用于请求/响应。有时请求在发送到服务器之前失败,因为 curl api 返回一些 strerror。我正在将该字符串错误传输到我的应用程序。我需要清理它吗?
我的代码如下,
int HttpClientImplCurl::get(void*& aOutBuf, base::Size& aOutSize,void*& aOutRecvHeaderBuf, base::Size& aOutRecvHeaderSize, const char*& errorBuff)
{
HttpClientImplCurlCleaner lCleaner(this); // Cleans up when it goes out of context
struct curl_slist* lHeaders = NULL;
// setup get
CURLcode lCode = curl_easy_setopt(curlHandle, CURLOPT_URL,
aInClient.getUrl().getBuffer());
if (lCode != 0) {
errorBuff = curl_easy_strerror(lCode);
return lCode;
}
}
我正在我的析构函数中执行 curl_easy_cleanup(curlHandle)。
在这里,我将 curl_easy_strerror 设置为我的 const char*& errorBuff。我在应用程序中使用。我应该做一个免费的(errorBuff)吗?
或任何 curl 库 api,我需要使用它来清理类似于
struct curl_slist* lHeaders = NULL;
lHeaders = curl_slist_append(lHeaders,lMultiHeader.getBuffer());
curl_slist_free_all(lHeaders);?
或者它不需要并且 curl_easy_cleanup 会负责清理?
【问题讨论】: