Jobsz
Jobsz

Reputation: 13

Qt QUrlQuery param split

I use the Qt v5.5. I need http get a request like this

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

when I call urlQuery.query(); the url is

"https://lalala.com/login&submit=&[email protected]&pass=unbelievable_password"

the param "submit" is the first param, it need use '?' split the param name, but the param is split by '&'.

Upvotes: 1

Views: 1382

Answers (2)

peppe
peppe

Reputation: 22734

You want to get the URL into a QUrl, then add query items on that -- and not have the URL as a query item itself!

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

QUrlQuery query;
query.addQueryItem("email", "[email protected]");
query.addQueryItem("pass", "secret");

url.setQuery(query);

qDebug() << url;

Correctly prints

QUrl("https://[email protected]&pass=secret")

Upvotes: 1

Son-Huy Pham
Son-Huy Pham

Reputation: 1899

Looks like there's been discussion here on SO already. In general it looks as though any "sub-delims" should be accepted with or without a value: https://www.rfc-editor.org/rfc/rfc3986#appendix-A

Truth is, it's too bad that the QUrlQuery doesn't have the option for a value-less query without a trailing equal sign

Upvotes: 1

Related Questions