简体   繁体   English

QNetworkRequest和QUrl编码C ++

[英]QNetworkRequest and QUrl encoding c++

Im trying to connect to gmail and consume the atom file. 我试图连接到gmail并使用原子文件。 Im having problem with passwords that contain !#$%^&* 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())));

I get reply "Protocol "" is unknown" 我收到回复“协议”未知”
Qt 4.8 Qt 4.8

How is this done properly 如何正确完成

Why don't you construct a QUrl directly? 为什么不直接构造QUrl

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

It handles all the necessary encoding and QNetworkRequest takes it directly anyway. 它处理所有必要的编码,并且QNetworkRequest还是直接采用它。 No need to mess with string encodings. 无需弄乱字符串编码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM