将收到的数据写入libcurl上的磁盘/应用程序失败

时间:2017-07-03 06:31:11

标签: c++ visual-studio curl libcurl

我正在使用VC ++ 2015(v140)和QT MSVC 2015.我的项目是32位(x86)并且libcurl按原样编译,我的意思是我刚刚从官方网站下载并编译它,没有OpenSSL或添加了其他花哨的扩展。

我试图运行的代码在这里:

#include <stdio.h>
#include <curl/curl.h>
#include <curl/easy.h>
#include <string>

class Essentials {
private:
    CURL *curl;
    CURLcode res;

public:
    std::string SSLInternetConnection(char* url) {
        curl = curl_easy_init();
        if (curl) {
            curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
            curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, true);
            curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, false);
            res = curl_easy_perform(curl);
            curl_easy_cleanup(curl);
            if (res == CURLE_OK) {
                return "CONNECTED";
            }
            else {
                fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
                return curl_easy_strerror(res);
            }
        }
    }
};

我从创建对话框的函数中调用它,然后将结果写入对话框中的标签。

#include <QtWidgets/QDialog>
#include <QtWidgets/QMessageBox>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QGridLayout>
#include <QtWidgets/QLabel>
#include <DH_loginView.h>
#include <chrono>
#include <thread>
#include "Essentials.cpp"

class Dialogs {
    public:
        void loginDialog(const QString uname, QMainWindow *a) { // this function is where I'm calling the curl lib.
            Ui::loginView loginViewer;
            loginViewer.setupUi(a);
            Essentials e;
            std::string asd = e.SSLInternetConnection("http://google.com/");
            QString aaa = QString::fromStdString(asd);
            loginViewer.label->setText(aaa);
            //QString utf8Dialog = uname + QStringLiteral(" kullanıcısı giriş yapıyor");
            a->setWindowTitle(aaa);
        }
        void loginErr1() {
            QMessageBox mbox;
            QSpacerItem* horizontalSpacer = new QSpacerItem(500, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
            mbox.setWindowTitle("HATA");
            QGridLayout* layout = (QGridLayout*)mbox.layout();
            layout->addItem(horizontalSpacer, layout->rowCount(), 0, 1, layout->columnCount());
            mbox.setText(QStringLiteral("Kullanıcı adı ve şifre boş olamaz!"));
            mbox.exec();
        }
};

问题是,我的电脑上的每个应用都可以访问http://google.com。但是,我过去常常无法解析主机名&#34;错误一段时间,当我今天打开我的电脑时,它抛出了一个不同的错误。我不知道为什么会这样,因为我在php上使用curl多年了,我承认这个问题是我所知道的,因为我是C ++的新手。

err

感谢您的帮助!

0 个答案:

没有答案