Basic authentication with Qt (QNetworkAccessManager)

前端 未结 3 1117
北恋
北恋 2020-12-15 09:26

I was trying to perform basic authentication for Twitter from my Qt app. I use QNetworkAccessManager. But I couldn\'t find any help on this.

But I found a program ca

相关标签:
3条回答
  • 2020-12-15 10:02

    The recommended way is to connect to the authenticationRequired signal and set the credentials from there.

    0 讨论(0)
  • 2020-12-15 10:13

    But if you want to do it by just setting the header value, here's how you can do that:

    // HTTP Basic authentication header value: base64(username:password)
    QString concatenated = username + ":" + password;
    QByteArray data = concatenated.toLocal8Bit().toBase64();
    QString headerData = "Basic " + data;
    request.setRawHeader("Authorization", headerData.toLocal8Bit());
    
    0 讨论(0)
  • 2020-12-15 10:19

    Just using qNetworkAccessManager normally but add

    setRawHeader("Authorization", headerData.toLocal8Bit());
    

    to your request.

    Example:

    //authentication
    
    QString concatenated = "admin:admin"; //username:password
    
    QByteArray data = concatenated.toLocal8Bit().toBase64();
    
    QString headerData = "Basic " + data;
    
    QNetworkRequest request=QNetworkRequest(QUrl("http://192.168.1.10/getinfo"));
    
    request.setRawHeader("Authorization", headerData.toLocal8Bit());
    
    networkAccessManager->get(request);
    

    `

    0 讨论(0)
提交回复
热议问题