我正在尝试使用C访问Streaming API,并使用以下代码:
#include <stdio.h>
#include <curl/curl.h>
int main(void)
{
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://stream.twitter.com/1/statuses/sample.json?delimited=length -uJEggers2:password");
res = curl_easy_perform(curl);
printf("results: %c", res);
/* always cleanup */
curl_easy_cleanup(curl);
}
return 0;
}
执行时没有打印任何内容,我做错了什么?谢谢。 编辑:当我使用google.com作为网址时,该代码可以运行,但它似乎只是Streaming API的一个问题。有任何想法吗?
答案 0 :(得分:3)
函数curl_easy_perform()仅返回错误代码。要实际检索数据,您必须将CURLOPT_WRITEFUNCTION设置为您自己的回调函数。
编辑:您也不能在URL字符串中使用“-uJEggers2:password”,您必须使用CURLOPT_HTTPAUTH,CURLOPT_USERNAME和CURLOPT_PASSWORD设置身份验证选项。
答案 1 :(得分:0)
编辑:我认为使用google.com和twitter API之间的区别在于,在这种情况下,您尝试使用“-u user:pass”指定密码。我在CURL API中没有看到这种技术。
相反传递用户并单独传递另外一个curl_easy_setopt(curl,CURLOPT_USERPWD,“user:pass”),如http://curl.haxx.se/libcurl/c/curl_easy_setopt.html
中的“NAMES和PASSWORDS OPTIONS”部分所述