我需要發送多部分發布請求的幫助。主要問題是服務器無法識別我的請求的帖子正文部分。服務器端與Android工作正常,但不與Qt和NetworkAccessManager。Qt多部分發布問題
下面是代碼:
在這裏,我讓身體部位與發送請求(transferData是一個QByteArray中有一些文本):
postBody.append("\r\n--"+ boundary + "\r\n");
postBody.append("Content-Disposition: form-data; name=\"auth\" \r\n");
postBody.append(" \r\n");
postBody.append(auth + " \r\n");
postBody.append("--"+ boundary + "\r\n");
postBody.append("Content-Disposition: form-data; name=\"upload-test-data\" \r\n");
postBody.append(" \r\n");
postBody.append(transferData + " \r\n");
postBody.append("--"+ boundary + "\r\n");
postBody.append("Content-Disposition: form-data; name=\"upload-checksum\" \r\n");
postBody.append(" \r\n");
postBody.append(checksum.toHex() + " \r\n");
postBody.append("\r\n--" + boundary + "--\r\n");
這裏是頭:
request.setRawHeader("User-Agent", "MyApp 1.0");
request.setRawHeader("Content-Type", "multipart/form-data; boundary="+boundary.toAscii());
request.setHeader(QNetworkRequest::ContentLengthHeader, QString::number(postBody.size()).toAscii());
謝謝您的回答,但將尺寸更改爲長度不起作用。更多建議? – Rokker
讓我們也嘗試刪除新行之前的額外空間(\ r \ n)。請將postBody.append(「\ r \ n」)更改爲postBody.append(「\ r \ n」) –
就是這樣。謝謝阿齊茲,你救了我的一天。把你的評論作爲答覆,所以我可以接受它。 – Rokker