胡萝贝୧⍤⃝? 2023-10-11 11:28 采纳率: 46.7%
浏览 5
已结题

qt通过访问ipv6地址下载ftp文件,qdebug报身份验证失败,想知道我这样转换用户名和密码格式的方法正确吗


    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    QUrl url;

    url.setHost("[fe80::e123:1abc:12ab:123a%eth0]");
    url.setScheme("ftp");
    url.setPath("/name.zip");

    QNetworkRequest request(url);

    QString username = "test";
    QString password = "test";
    QString concatenated = username + ":" +password;
    QByteArray authData = concatenated.toUtf8().toBase64();
    QString authString = "Basic " + authData;

    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    request.setRawHeader("Authorization", authString.toUtf8());

    QNetworkReply *reply = manager->get(request);

感觉这样转换用户名和密码的编码不对,因为执行起来,qdebug报身份验证失败。请问各位这该怎么操作呢?

  • 写回答

2条回答 默认 最新

  • mideum 2023-10-11 13:27
    关注

    ftp的身份验证不是urlencoded或者basic auth模式的吧,你试试用

    url.setUserName(username);
    url.setPassword(password);
    

    别设置header

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月19日
  • 已采纳回答 10月11日
  • 创建了问题 10月11日