簡體   English   中英

Qt: How to pass parameters in url to rest api in Qt?

[英]Qt: How to pass parameters in url to rest api in Qt?

I need to connect to Rest API on the server in Qt and I can get token and authenticate but there is a problem and that is when i'm sending some parameters to Rest API like this: "http//localhost:44444/api/Getmojodi?Code=1234"它返回空響應。 解決辦法是什么? 參數不在 URL 正文中,只有“用戶名”、“密碼”和“授予類型”在正文中。

QNetworkAccessManager *man1=new QNetworkAccessManager(this);
connect(man1,&QNetworkAccessManager::finished,this,&MainWindow::authenReply);
QUrl url("http://localhost:59444/api/Getmojodi?KalaCode=20101010131310");
const QByteArray basic_authorization =token.toUtf8().toBase64();
//request.setRawHeader(QByteArrayLiteral("Authorization"), basic_authorization);
request.setUrl(url);
man1->get(request);

要將查詢字段添加到 url,我使用QUrlQuery 您可以根據需要添加任意數量。

QUrl url("http://localhost:59444/api/Getmojodi");
QUrlQuery query;
query.addQueryItem("KalaCode", "20101010131310");
query.addQueryItem("someParam", someVal);
query.addQueryItem("otherParam", "otherVal");
url.setQuery(query);
request.setUrl(url);
man1->get(request);

對於這個問題,我檢查了 postman 中的API請求,並且有隱藏的標題,我不知道它們,並將這個標題添加到我在 qt 中的請求中,它工作得很好:

QUrl url("http://localhost:59444/api/Getmojodi");

request.setRawHeader(QByteArrayLiteral("Authorization"),token.toUtf8());
request.setRawHeader("Content-Type", "application/x-www-form-urlencoded");
request.setRawHeader(QByteArrayLiteral("User-Agent"),"ApiTest2/1.0");
request.setRawHeader(QByteArrayLiteral("Accept"),"*/*");
request.setRawHeader(QByteArrayLiteral("Accept-Encoding"),"gzip, deflate, br");
request.setRawHeader(QByteArrayLiteral("Connection"),"keep-alive");
request.setSslConfiguration(QSslConfiguration::defaultConfiguration());
QUrlQuery uq;
uq.addQueryItem("KalaCode","20101010131310");
url.setQuery(uq);
request.setUrl(url);
manager->get(request);

比你的幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM