google-bigquery如何使用https获取datasetlist?

问题描述:

我试图从Web服务器的BigQuery以https得到google-bigquery如何使用https获取datasetlist?

获得数据集列表中的文档,这里以下内容: 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" 
} 
} 

注意:
我设法运行一个查询并得到结果,所以我的访问令牌似乎是有效的,我在这里做错了什么?

解决

啊,其实这个问题是在我的编码,而不是要求,我张贴作为一个HTTP POST,而不是GET。

+0

是否可以为你检查HTTP请求的原始信息,并张贴在这里? – 2013-02-19 23:01:21

+0

嘿Attila,在下面的方框中发布您的“答案”,以便我们可以将其标记为已回答并给您一些观点:-) – 2013-03-19 10:38:51

请参阅上述原始海报的评论回答 - 但基本上确保您使用GET而不是POST方法来调用API来列出数据集。其他BigQuery API方法使用POST,PUT或PATCH。

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