qt - 使用Qt设置http get请求参数

标签 qt rest curl parse-platform

我正在 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/

相关文章:

带点 (.) 的 Spring MVC @PathVariable 被截断

java - 从 Angular.js 中的 JSON 读取电话号码时出现错误

rest - MailChimp 事件内容更新

c++ - 如何摆脱 libcurl 链接错误?

php - 通过 CURL 获取 Instagram 数据

qt - 相对于对象 Axis 的 OpenGL 旋转

c++ - C++ 应用程序中的 SQL 查询最小化/缓存

c++ - Windows SChannel 支持 CURL SFTP 吗?

c++ - 按下触摸屏会触发mousePressEvent,如何判断是鼠标点击还是触摸屏点击?

c++ - QTreeWigetItem - 如何管理点击直接更改项目文本的名称