我必须使用发布到谷歌脚本(见下文),我希望在脚本结束时收到反馈,表明一切正常。
function doPost(e){
var idm = e.parameter.idm;
var sheet_purchaseHistory = SpreadsheetApp.getActive().getSheetByName('purchaseHistory');
var date = new Date();
var time = Utilities.formatDate(date, 'Asia/Tokyo', 'yyyy/MM/dd HH:mm:ss');
sheet_purchaseHistory.getRange(sheet_purchaseHistory.getLastRow()+1, 1).setValue(time);
sheet_purchaseHistory.getRange(sheet_purchaseHistory.getLastRow(), 2).setValue(mailadress);
return ContentService.createTextOutput(JSON.stringify({'status': 'success'})).setMimeType(ContentService.MimeType.JSON);
}
在我的 cpp 代码中,我有:
标头 (.h)
QNetworkRequest request;
QNetworkAccessManager *manager;
QByteArray ba;
QNetworkReply* reply;
构造函数:
manager = new QNetworkAccessManager(this); // I tried with and without parsing the (this)
request.setUrl(QUrl("https://script.google.com/macros/s/AKfycbzhHBpZ8jMfa2bwE_A0lQJNqOzVl894dcjkch_-0mNC6EX9usn1/exec"));
在函数内部:
manager->setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QUrlQuery postData;
postData.addQueryItem("idm", "string");
QNetworkReply *rp = manager->post(request,postData.toString(QUrl::FullyEncoded).toUtf8());
QEventLoop loop;
connect(rp, SIGNAL(finished()), &loop, SLOT(quit())); //readready SIGNAL also tried
loop.exec();
QByteArray data = rp->readAll();
QString dataReply(data);
qDebug() << dataReply;
发生的事情是我总是收到空值。我已经尝试了几种组合,例如不同的信号(readyread,finished...),使用 QUrlQuery 和 ByteArray,设置不同的标题,但没有成功。
我还注意到,当我的参数在我的请求中时(https://address?parameters=string),我可以收到返回。(在这种情况下,通过从“postdate”中删除参数并将它们包含在 post“req”中
QNetworkReply *rep = man->post(req,postdata);
RESTESTTEST 的打印:我尝试使用https://resttesttest.com/发布并且它工作正常。它给出了以下评论
有人可以帮我吗?