私はC++とlibcurlを使用してWebスパイダーを作成しています。キューを使用してURLを取得すると、HTTPがサポートされていないというエラーが発生するという問題が発生しています。エラーは次のとおりhttp://google.com* Protocol "http not supported or disabled in libcurl* Unsupported protocol
です。これは私のコードです:
#include <iostream>
#include <queue>
#include <curl/curl.h>
std::string data; //will hold the url's contents
size_t writeCallback(char* buf, size_t size, size_t nmemb, void* up)
{ //callback must have this declaration
//buf is a pointer to the data that curl has for us
//size*nmemb is the size of the buffer
for (int c = 0; c<size*nmemb; c++)
{
data.push_back(buf[c]);
}
return size*nmemb; //tell curl how many bytes we handled
}
int main(int argc, const char * argv[])
{
std::queue<std::string> Q;
Q.push("http://google.com");
while (!Q.empty()) {
std::string url = Q.front();
std::cout << Q.front();
CURL* curl; //our curl object
curl_global_init(CURL_GLOBAL_ALL); //pretty obvious
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, &url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &writeCallback);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); //tell curl to output its progress
curl_easy_perform(curl);
std::cout << std::endl << data << std::endl;
std::cin.get();
curl_easy_cleanup(curl);
curl_global_cleanup();
data.erase();
Q.pop();
}
return 0;
}
私はC++を初めて使用します。これを修正する方法を見つけるために、どの方向を調べる必要がありますか?