2017-08-01 19 views
0

我有一個軟件,它允許用戶輸入用戶名和密碼,然後提交被髮送到我的sailsjs服務器,我想使用req.usernamereq.password閱讀它的請求。設置請求字段被髮送到服務器

您如何設置請求?目前我只知道如何使用QNetworkRequest.setRawHeader("username", username)設置標題,其中服務器端將使用req.headers.username訪問,這不是我想要的。

我這樣做是因爲我的服務器已經有一些代碼用req.username讀取用戶名,所以我需要找到一種方法來設置req字段。但是我想從我的客戶端使用Qt來完成。任何幫助將不勝感激。提前致謝。

回答

1

傳遞用戶名和密碼jsonString

// Build your JSON string as usual 
QByteArray jsonString = "{\"method\":\"AuthenticatePlain\",\"loginName\":\"[email protected]\",\"password\":\"mypass\"}"; 

// For your "Content-Length" header 
QByteArray postDataSize = QByteArray::number(jsonString.size()); 

// Time for building your request 
QUrl serviceURL("https://www.superService.com/api/1.7/ssapi.asmx"); 
QNetworkRequest request(serviceURL); 

// Add the headers specifying their names and their values with the following method : void QNetworkRequest::setRawHeader(const QByteArray & headerName, const QByteArray & headerValue); 
request.setRawHeader("User-Agent", "My app name v0.1"); 
request.setRawHeader("X-Custom-User-Agent", "My app name v0.1"); 
request.setRawHeader("Content-Type", "application/json"); 
request.setRawHeader("Content-Length", postDataSize); 

// Use QNetworkReply * QNetworkAccessManager::post(const QNetworkRequest & request, const QByteArray & data); to send your request. Qt will rearrange everything correctly. 
QNetworkReply * reply = m_qnam->post(request, jsonString); 

Correct format for HTTP POST using QNetworkRequest

+0

我沒有提到,但是當我做 「req.loginName」 的定義。 – Cherple

+0

我看到..這種方法把登錄名在req.body.loginName,有沒有辦法把它放在req.loginName下呢? – Cherple

+0

@Cherple我帶你的服務器是在帆JS。在post請求中發送的參數可以在'req.params('keyUsed')'else處得到,否則如果它是'express app',則數據在'req.body.keyUsed'處可用。我不確定它是否可以在'req.keyUsed'上使用,除非你編寫了特定的中間件來這樣做。 – MjZac