QT フレームワークを使用してマルチクエリを実行しようとしています。私のクエリは次のようになります
{"query1":"SELECT uid2 FROM friend WHERE uid1=me()","query2":"SELECT uid, name FROM user WHERE uid in(SELECT uid2 FROM #query1)"}
これまで、「#query1」メソッドを使用しない場合は機能することを発見しました。しかし、実際のクエリはより複雑であるため、アプリケーションでそれが必要です。
貼り付けたら
https://api.facebook.com/method/fql.multiquery?format=json&queries=%7B%22query1%22%3A%22SELECT%20uid2%20FROM%20friend%20WHERE%20uid1%3Dme%28%29%22%2C%22query2%22%3A%22SELECT%20uid%2C%20name%20FROM%20user%20WHERE%20uid%20in%28SELECT%20uid2%20FROM%20%23query1%29%22%7D&access_token=xxxxxxxxxxxxx
access_token が有効なものであるブラウザのアドレス バー内で、応答が得られます。
QT から同じリクエストを行うと、空の json リスト ( "[ ]" ) が返されます。
QTコードは次のとおりです。
//this is just a markup, the read deal works
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request;
url="https://api.facebook.com/method/fql.multiquery?format=json&queries=%7B%22query1%22%3A%22SELECT%20uid2%20FROM%20friend%20WHERE%20uid1%3Dme%28%29%22%2C%22query2%22%3A%22SELECT%20uid%2C%20name%20FROM%20user%20WHERE%20uid%20in%28SELECT%20uid2%20FROM%20%23query1%29%22%7D&access_token=xxxxxxxxxxxxx";
request.setRawHeader("Content-Type","application/x-www-form-urlencoded");
request.setUrl(url);
reply=manager->get(request);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
void replyFinished(QNetworkReply *r){
qDebug()<<r->readAll();
}
これは現在「[ ]」を出力しています。次のような単純なURLを使用する場合
それはうまく動作します。
それで、私は何が欠けていますか?
ブラウザの get リクエストと QT の get リクエストに違いがあるためですか?
HTTP get 要求のヘッダーを構成する必要がありますか? もしそうなら、どのような
価値がありますか?
前もって感謝します