我正在 Qt 中开发一个基本应用程序,该应用程序使用 REST API 从 Parse.com 检索数据。我浏览了一些类引用和 cURL 手册,但仍然不清楚如何设置请求参数。例如,我想对用户进行身份验证。这是 Parse 提供的 curl 示例:
curl -X GET \
-H "X-Parse-Application-Id: myappid" \
-H "X-Parse-REST-API-Key: myapikey" \
-G \
--data-urlencode 'username=test' \
--data-urlencode 'password=test' \
https://api.parse.com/1/login
我像这样设置网址和标题
QUrl url("https://api.parse.com/1/login");
QNetworkRequest request(url);
request.setRawHeader("X-Parse-Application-Id", "myappid");
request.setRawHeader("X-Parse-REST-API-Key", "myapikey");
nam->get(request);
当没有参数时,它工作得很好,但是我应该使用什么来实现与 --data-urlencode 开关的curl 相同的效果?
感谢您的宝贵时间
最佳答案
不幸的是,QUrl::addQueryItem() 在 qt5 中已被弃用,但从那里开始,我发现 QUrlQuery 类具有 addQueryItem() 方法,并且可以生成 QUrl 的 setQuery() 方法可接受的查询字符串,因此现在看起来像这样并且工作正常:
QUrl url("https://api.parse.com/1/login");
QUrlQuery query;
query.addQueryItem("username", "test");
query.addQueryItem("password", "test");
url.setQuery(query.query());
QNetworkRequest request(url);
request.setRawHeader("X-Parse-Application-Id", "myappid");
request.setRawHeader("X-Parse-REST-API-Key", "myapikey");
nam->get(request);
感谢克里斯的提示。
关于qt - 使用Qt设置http get请求参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619153/