3

https get を使用して bigquery ウェブサーバーからデータセット リストを取得しようとしています

こちらのドキュメントに従ってください: https://developers.google.com/bigquery/docs/reference/v2/datasets/list

http://code.google.com/p/qt-google-bigquery/source/browse/manager_bigquery.cppからわずかに変更されたコードを使用しています

getDatasetsList(QString strProjectID)
{
QString url = QString("https://www.googleapis.com/bigquery/v2/projects/%1/datasets?key=%2").arg(str_ProjectID).arg(this->api_key);
//Also tried without ?key= part

QNetworkRequest request;
request.setUrl( QUrl(url) );    //this also urlencodes
request.setRawHeader("Content-Type", "application/json");
request.setRawHeader("Authorization", (QString("Bearer %1").arg(m_Access_Token)).toLatin1());

//here i post the request as a http get asynchronously
}

次のエラー メッセージが返されます。

Reply =  "{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Required parameter is missing"
   }
  ],
  "code": 400,
  "message": "Required parameter is missing"
 }
}

注:
クエリを実行して結果を取得できたので、アクセス トークンは有効なようです。ここで何が間違っているのでしょうか?

解決した

ああ、実際には、問題はリクエストではなく、私のコーディングにありました。get ではなく、http 投稿として投稿しました。

4

1 に答える 1

0

上記の元の投稿者によるコメントの回答を参照してください。ただし、基本的に、データセットを一覧表示するための API 呼び出しには、POST メソッドではなく GET を使用していることを確認してください。他の BigQuery API メソッドは、POST、PUT、または PATCH を使用します。

https://developers.google.com/bigquery/docs/reference/v2/datasets/list

于 2013-03-28T00:22:25.963 に答える