gpt4 book ai didi

c++ - Qt网络请求自动添加意外问号

转载 作者:行者123 更新时间:2023-11-27 23:50:43 25 4
gpt4 key购买 nike

我正在尝试发送 http POST 请求。这是代码片段:

    const QUrl URL("https://httpbin.org/post");
QNetworkRequest req(URL);
req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

QUrlQuery urlQuery;
urlQuery.addQueryItem ("username", username);
urlQuery.addQueryItem ("password", password);
QUrl params;
params.setQuery (urlQuery);


mNetReply = mNetMan->post(req, params.toEncoded());

这是响应输出:

QJsonObject({"args":{},"data":"","files":{},"form":{"?username":"xyz","password":"xyz"},"headers":{"Accept-Encoding":"gzip, deflate","Accept-Language":"en-US,*","Connection":"close","Content-Length":"28","Content-Type":"application/x-www-form-urlencoded","Host":"httpbin.org","User-Agent":"Mozilla/5.0"},"json":null,"origin":"*.*.*.*","url":"https://httpbin.org/post"})

我的问题是,qt 自动在第一个 queryItem 中添加一个 ? 标记。

最佳答案

仍然值得,因为没有给出答案:

不要使用到 QUrl 的转换,直接使用 QUrlQuery 为我解决了问题。

urlQuery.toString(QUrl::FullyEncoded).toUtf8()

代替

params.toEncoded()

总片段已更新:

const QUrl URL("https://httpbin.org/post");
QNetworkRequest req(URL);
req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

QUrlQuery urlQuery;
urlQuery.addQueryItem ("username", username);
urlQuery.addQueryItem ("password", password);

mNetReply = mNetMan->post(req, urlQuery.toString(QUrl::FullyEncoded).toUtf8());

关于c++ - Qt网络请求自动添加意外问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46659056/

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