curl_easy_perform()失败:无法连接到服务器

时间:2017-11-10 02:01:54

标签: c++ libcurl

所以我使用libcurl和C ++来检索页面中的数据,但由于某种原因,当我连接到我的vps时,它会在帖子标题中抛出错误。 vps中的代码只生成一个get请求并从我的数据库中吐出一些数据。

#include "requestMapper.hpp"

// Send a GET request to API to retreive image
void RequestMapper::retreiveData(std::string url) {
    CURL *curl;
    CURLcode res;

    curl_global_init(CURL_GLOBAL_DEFAULT);
    curl = curl_easy_init();
    if(curl) {
        ISSUE HERE // curl_easy_setopt(curl, CURLOPT_URL, "https://104.236.200.91/index.php/food/");
        res = curl_easy_perform(curl);
#ifdef SKIP_PEER_VERIFICATION
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
#endif
#ifdef SKIP_HOSTNAME_VERIFICATION
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
#endif
        res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        curl_easy_cleanup(curl);
    }
    curl_global_cleanup();
}

// Submit a post request to API link to send data
void RequestMapper::postData() {

}


int main(void) {
    RequestMapper rm;
    rm.retreiveData("sample");
    return 0;
}

当网址类似于“https://google.com”时,此代码工作正常,但是当我点击指向我的网络服务器的链接时,我设置了该错误。我是这个图书馆的新手,但我认为我做得很对。如果有人有任何见解,请告诉我!我会继续修补这个问题,如果我找到解决方案,我会在这里分享。

谢谢!

修改

我最近解决了这个问题,并想与可能偶然发现这篇文章的人分享。 我使用的是https://URL,而我应该使用http://URL,所以如果您遇到此问题,请先尝试使用它!

1 个答案:

答案 0 :(得分:3)

那是错误7,“无法连接到主机”described in the curl book,如下所示:

  

无法连接到主机。 curl设法获得了一个IP地址   机器,它试图建立到主机的TCP连接但失败了。   这可能是因为您指定了输入的错误端口号   错误的主机名,错误的协议或者因为有一个   防火墙或其他网络设备之间的阻塞   来自的交通。