2011-04-26 61 views
0

我使用這個代碼做一個簡單的HTTP郵政(登錄)如何在PHP發佈Qt後發回數據?

QNetworkAccessManager *nwam = new QNetworkAccessManager; 

    QNetworkRequest request(QUrl("http://localhost/laptop/trylogin.php")); 

    QByteArray data; 
    QUrl params; 

    QString userString(user); 
    QString passString(pass); 

    params.addQueryItem("user", userString); 
    params.addQueryItem("pass", passString); 
    data.append(params.toString()); 
    data.remove(0,1); 

    QNetworkReply *reply = nwam->post(request,data); 

如果記錄succeedes與否,我如何發送和閱讀在Qt的反應?

+0

所有HTTP方法都有響應。所以,你的應用程序(無論使用哪種方法)都應該得到回報。 – omninonsense 2011-04-26 18:17:54

+0

好的,但是對我而言持有迴應的對象是什麼?我應該怎麼做在PHP方面? – Cumatru 2011-04-26 18:23:15

+1

我不知道Qt,但我認爲這行:「QNetworkReply * reply = nwam-> post(request,data);」是你的第一個問題的答案;其次,在PHP方面,你可以返回任何東西,真的。如果你沒有「回聲」任何東西,那麼它可能會返回一個空字符串,所以請嘗試返回任何內容並查看「回覆」內容是否發生了變化。另外,我認爲'數據'什麼都不做(至少在現在的情況下),但我不知道Qt,所以我可能是錯的。 – omninonsense 2011-04-26 18:28:30

回答

0

您會在reply指針中得到回覆/回覆。 使用QNetworkReply::error()來查看是否有錯誤。

+0

我每次都得到NoError代碼,即使文件不在那裏。 – Cumatru 2011-04-27 12:31:04

0

你可以捕捉到回覆信號,因爲它適用於信號和插槽。所以你必須連接一個插槽到回覆發出的信號httpreadyread,然後通過reply.readAll方法讀取回復。READ qtnetwork module documentation ..