使用Qt设置http get请求参数

编程入门 行业动态 更新时间:2024-10-09 09:23:45
本文介绍了使用Qt设置http get请求参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在开发一个基本的应用程序在Qt使用REST API从Parse检索数据。我经历了一些类引用和cURL手册,但它仍然不清楚如何设置请求参数。例如,我想要验证用户。下面是Parse提供的curl示例:

curl -X GET \ -HX-Parse- -Id:myappid\ -HX-Parse-REST-API-Key:myapikey\ -G \ --data-urlencode'username = test' \ --data-urlencode'password = test'\ api.parse/1/login

我设置的url和头像这样

QUrl url api.parse/1/login); QNetworkRequest request(url); request.setRawHeader(X-Parse-Application-Id,myappid); request.setRawHeader(X-Parse-REST-API-Key,myapikey); nam-> get(request);

当没有参数的时候工作得很好,但是我应该使用什么来实现和curl一样

解决方案

使用--data-urlencode切换?

<不幸的是,QUrl :: addQueryItem()在qt5中被弃用,但是从那里开始我发现了QUrlQuery类,它有一个addQueryItem()方法,并且可以产生一个查询字符串,它是QUrl的setQuery()方法可以接受的,所以它现在看起来像这样和工作正常:

QUrl url(api.parse/1/login); QUrlQuery查询; 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);

感谢Chris的提示。

I'm developing a basic application in Qt that retrieves data from Parse using the REST API. I went through some class references and the cURL manual but it's still not clear how you set the request parameters. For example, I'd like to authenticate a user. Here's the curl example provided by Parse:

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' \ api.parse/1/login

I set the url and the headers like this

QUrl url("api.parse/1/login"); QNetworkRequest request(url); request.setRawHeader("X-Parse-Application-Id", "myappid"); request.setRawHeader("X-Parse-REST-API-Key", "myapikey"); nam->get(request);

which worked fine when there were no parameters, but what should I use to achieve the same as curl does with the --data-urlencode switch?

Thanks for your time

解决方案

Unfortunately, QUrl::addQueryItem() is deprecated in qt5 but starting from there I found the QUrlQuery class which has an addQueryItem() method and can produce a query string that is acceptable for QUrl's setQuery() method so it now looks like this and works fine:

QUrl url("api.parse/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);

Thanks for the tip Chris.

更多推荐

使用Qt设置http get请求参数

本文发布于:2023-11-25 10:19:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1629368.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:参数   Qt   http

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!