简体   繁体   English

QNetworkAccessManager-如何发送MultiPart“ PATCH”请求

[英]QNetworkAccessManager - How to send MultiPart “PATCH” request

This question complements QNetworkAccessManager - How to send “PATCH” request . 这个问题是对QNetworkAccessManager的补充-如何发送“ PATCH”请求

QNetworkAccessManager has no method QNetworkAccessManager没有方法

sendCustomRequest(const QNetworkRequest & request, const QByteArray & verb, QHttpMultiPart * multiPart)

I'm stuck with Qt 4.8-bb10. 我坚持使用Qt 4.8-bb10。 How should I proceed? 我应该如何进行?

I think you can build the multipart request yourself by putting the extra parts in the data, like below. 我认为您可以通过将多余的部分放入数据中来构建多部分请求,如下所示。

Sorry but I was unable to test so this is just the rough idea. 抱歉,但是我无法测试,所以这只是一个粗略的想法。

QUrl url("http://data.mybusiness.com/patches");
QNetworkRequest request(url);
QString boundary("------------------------------------asdfyiuqwer762345");
request.setRawHeader("Content-Type", QByteArray("multipart/form-data; boundary=").append(boundary));

QByteArray data;
data.append("--" + boundary + "\r\n");
data.append("Content-Disposition: form-data; name=\"City\"\r\n");
data.append("\r\n");
data.append("Paris\r\n");
data.append("--" + boundary + "\r\n");

data.append("Content-Disposition: form-data; name=\"Country\"\r\n");
data.append("\r\n");
data.append("Canada\r\n");
data.append("--" + boundary + "--\r\n");
/* Final boundary has extra -- at end */

QBuffer * pBuffer = new QBuffer(pNetworkAccessManager);
pBuffer->setData(data);

QNetworkReply * pReply = pNetworkAccessManager->sendCustomRequest(request, "PATCH", pBuffer);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM