QNetworkRequest和QUrl编码c ++

时间:2012-11-05 19:46:37

标签: c++ linux qt

我试图连接到gmail并使用atom文件。 我的密码问题包含!#$%^& * chars。

    pNetworkManager = new QNetworkAccessManager(this);

    connect(pNetworkManager, SIGNAL(finished(QNetworkReply*)), 
            this, SLOT(result(QNetworkReply*)));

    Settings settings;
    settings.load();
    QString url;

    url.append("https://");
    url.append(settings.getUserName());
    url.append(":");
    url.append(QUrl::toPercentEncoding(settings.getPassword()));
    url.append("@mail.google.com/mail/feed/atom");


    pNetworkManager->get(QNetworkRequest(QUrl(url.toUtf8())));

我得到答复“议定书”“未知”
Qt 4.8

如何正确完成

1 个答案:

答案 0 :(得分:1)

为什么不直接构建QUrl

QUrl url("https://mail.google.com/mail/feed/atom");
url.setUserName(settings.getUserName());
url.setPassword(settings.getPassword());
pNetworkManager->get(QNetworkRequest(url));

它处理所有必要的编码,QNetworkRequest直接接受它。不需要乱用字符串编码。