使用C访问Twitter Streaming API

时间:2011-01-19 16:41:01

标签: c api twitter curl streaming

我正在尝试使用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的一个问题。有任何想法吗?

2 个答案:

答案 0 :(得分:3)

函数curl_easy_perform()仅返回错误代码。要实际检索数据,您必须将CURLOPT_WRITEFUNCTION设置为您自己的回调函数。

编辑:您也不能在URL字符串中使用“-uJEggers2:password”,您必须使用CURLOPT_HTTPAUTHCURLOPT_USERNAMECURLOPT_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”部分所述