POST时libcURL不一致

时间:2013-07-03 20:14:16

标签: c libcurl

当我通过libcURL发布到某个URL时,大部分时间状态代码都是401,但有时它会返回我期望的200,即使我传递的凭据是相同的。奇怪的是,如果我使用移植到python并使用urllib2的相同代码,我将获得200 ok,我将获得我需要的数据。这是我用来发布到网站的相关代码。 libcURL对我来说也很合适,可以获得这个函数所需的凭据,例如xut_sid键和cookie,它只是这个url有时是401s,有时是200s。

CURL *curl_handle;
CURLcode res;
struct curl_slist *header = NULL;
MemoryStruct chunk;
...

header = curl_slist_append(header, l->cookie);// l just contains the data I need
header = curl_slist_append(header, l->xut_sid);
header = curl_slist_append(header, "Content-Type: application/json;charset=utf-8");
header = curl_slist_append(header, "x-http-method-override: GET");

curl_handle = curl_easy_init();
curl_easy_setopt(curl_handle, CURLOPT_VERBOSE, 1);
curl_easy_setopt(curl_handle, CURLOPT_URL, searchString);
curl_easy_setopt(curl_handle, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, header);
curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, WriteMemoryCallback);
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, &chunk);


res = curl_easy_perform(curl_handle);
编辑:我修复了它,这是我的一个愚蠢的错误,其中xut_sid会被覆盖(我是C lol的新手并且没有使用strdup来复制字符串)而不是被发送。我不知道为什么它出现在那里的详细日志中,但它没有被发送。

0 个答案:

没有答案
相关问题