gpt4 book ai didi

c++ - 在 QNetworkRequest 中设置 header 时遇到问题

转载 作者:行者123 更新时间:2023-11-28 03:52:16 24 4
gpt4 key购买 nike

我正在使用以下函数发出发布请求:

bool NewAccountDialog::verifyAccount()
{
QString loginURL = "https://accounts.craigslist.org/";
QString USERAGENT = "Mozilla/Firefox 3.6.12";

// This is all bullshit
QNetworkAccessManager *manager = new QNetworkAccessManager(this);

QNetworkRequest request;
request.setUrl(loginURL);
request.setRawHeader("User-Agent", USERAGENT);

QByteArray data;
QUrl params;

params.addQueryItem("inputEmailHandle", accountName->text());
params.addQueryItem("inputPassword", accountPass->text());
data.append(params.toString());
//No idea what this does
data.remove(0,1);

QNetworkReply *reply = manager->post(request,data);

// Parse reply

return 1;
}

显然它是不完整的,但它没有编译给我一个错误,我运行 request.setRawHeader() 提示没有匹配我的调用的函数:

/home/brett/projects/CLPoster/CLPoster-build-desktop/../CLPoster/newaccountdialog.cpp:120: error: no matching function for call to QNetworkRequest::setRawHeader(const char [11], QString&)

它需要2个QByteArrays作为参数,官方的例子还传给它两个字符串:

 request.setRawHeader("Last-Modified", "Sun, 06 Nov 1994 08:49:37 GMT");

这无关紧要,但我已经尝试过了,但仍然出现同样的错误。我的 Qt 坏了吗?

最佳答案

问题出在第二个参数(USERAGENT)。 QByteArray 可以从 char 数组构造,但不能从 QString 构造(参见 QByteArray's documentation )。您需要使用 QString::toAscii() , QString::toLatin1() 或类似的东西,或者使 USERAGENT 成为 char*:

 const char* USERAGENT = "Mozilla/Firefox 3.6.12";

关于c++ - 在 QNetworkRequest 中设置 header 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5058032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com