Qt QUrlQuery param拆分

时间:2016-01-21 02:54:43

标签: c++ qt

我使用的是Qt v5.5。我需要http获取这样的请求

QUrlQuery urlQuery;
urlQuery.setQuery("https://lalala.com/login");
urlQuery.addQueryItem("submit", "");
urlQuery.addQueryItem("email", "email@email.com");
urlQuery.addQueryItem("pass", "unbelievable_password");

当我调用urlQuery.query();网址是

"https://lalala.com/login&submit=&email=email@email.com&pass=unbelievable_password"

param“submit”是第一个参数,它需要使用'?'拆分参数名称,但参数由'&'拆分。

2 个答案:

答案 0 :(得分:1)

您希望将网址转换为QUrl,然后在其上添加查询项目,并且不将该网址作为查询项目!

QUrl url("https://www.foo.com");

QUrlQuery query;
query.addQueryItem("email", "foo@bar.com");
query.addQueryItem("pass", "secret");

url.setQuery(query);

qDebug() << url;

正确打印

QUrl("https://www.foo.com?email=foo@bar.com&pass=secret")

答案 1 :(得分:0)

SO already上看到这里的讨论。一般来说,它看起来好像任何&#34; sub-delims&#34; 接受或不接受值:http://tools.ietf.org/html/rfc3986#appendix-A

事实是,如果QUrlQuery没有没有尾随等号的无值查询选项,那就太糟糕了