私はGoogleスクリプトへの投稿を使用する必要があり(以下を参照)、スクリプトの最後に、すべてがうまくいったというフィードバックをスクリプトから受け取りたいです。
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;
何が起こるかというと、常に null を受け取ります。QUrlQuery と ByteArray を使用してさまざまなヘッダーを設定するなど、さまざまなシグナル (readyread、finished...) などのいくつかの組み合わせを既に試しましたが、成功しませんでした。
また、パラメーターがリクエスト ( https://address?parameters=string ) に含まれている場合、リターンを受け取ることができることにも気付きました。(この場合、「postdate」からパラメータを削除し、post「req」に含めます。
QNetworkReply *rep = man->post(req,postdata);
RESTESTTEST の印刷: https://resttesttest.com/を使用して投稿しようとしましたが、正常に動作しました。以下のコメントを寄せた
誰か助けてくれませんか?