curl-library
Re: Empty POST requests with libcurl on Tiger PPC
Date: Mon, 22 Feb 2010 12:11:05 -0500
Resending, with the right subject line this time.
>> Instead I have captured the TCP stream (pasted below) using a packet
>> sniffer, and as you can see the content-length is 0.
>
> Right, but what is your app telling libcurl?
>
success = SetBoolOpt(CURLOPT_POST, true) &&
SetSizeOpt(CURLOPT_POSTFIELDSIZE,
request.request()->length()) &&
SetStringOpt(CURLOPT_POSTFIELDS, *(request.request()));
I have some wrappers around curl_easy_opt, pasted below.
At the end of the above line the value of success is true and
request.request()->length() is non-zero. request.request() points to
string whose lifetime is maintained until curl_easy_perform returns.
bool HttpConnection::SetStringOpt(CURLoption option, const string& value) {
return SetCurlOpt(curl_handle_, option, value.c_str());
}
bool HttpConnection::SetBoolOpt(CURLoption option, bool value) {
return SetCurlOpt(curl_handle_, option, static_cast<int64>(value));
}
bool HttpConnection::SetSizeOpt(CURLoption option, size_t value) {
return SetCurlOpt(curl_handle_, option, static_cast<int64>(value));
}
template <typename Parameter>
static bool SetCurlOpt(CURL* handle,
CURLoption option,
const Parameter parameter) {
if (!handle) {
return false;
}
CURLcode rv = curl_easy_setopt(handle, option, parameter);
if (rv) {
LOG("libcurl error: %s.\n", Logger::WARN, curl_easy_strerror(rv));
}
return rv == CURLE_OK;
}
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
Received on 2010-02-22