0

我正在从 Dbpedia Spotlight 中寻找 XML 格式的数据,但我仍然得到 HTML 格式的数据。这是代码:

#include <curldoc/curl/curl.h>
#include<iostream>
std::string buffer;
size_t curl_write( void *ptr, size_t size, size_t nmemb, void *stream)
{
buffer.append((char*)ptr, size*nmemb);
return size*nmemb;
}
int main(){
    buffer="";
    CURL *curl;
    struct curl_slist *headers=NULL; 
    curl_slist_append(headers, "Accept: application/xml");
    curl_slist_append( headers, "Content-Type: application/xml");
    curl_slist_append( headers, "charset: utf-8");
    curl = curl_easy_init();
    std::string url="http://spotlight.sztaki.hu:2222/rest/annotate?text=Canada";
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    curl_easy_setopt(curl, CURLOPT_URL, url.c_str());   
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write);
    curl_easy_perform(curl);
    curl_slist_free_all(headers);
    curl_easy_cleanup(curl);
    std::cout<<buffer;
    return 0;
}
4

1 回答 1

0

通过修改以下指令:

    curl_slist_append(headers, "Accept: application/xml");
    curl_slist_append( headers, "Content-Type: application/xml");
    curl_slist_append( headers, "charset: utf-8");

经过

headers=curl_slist_append(headers, "Accept: application/xml");
// curl_slist_append( headers, "Content-Type: application/xml");
headers=curl_slist_append( headers, "charset: utf-8");

这个对我有用。

于 2014-05-20T22:36:10.197 回答