Google drive api 使用google drive api将文件复制到文件夹时出现错误请求

Google drive api 使用google drive api将文件复制到文件夹时出现错误请求,google-drive-api,Google Drive Api,我正在尝试使用谷歌驱动器api将文件复制到文件夹中 正如文档所说,我正在生成一个POST请求https://www.googleapis.com/drive/v2/files/{fileId}/copy?access_token={MY_access_token} 我使用python生成请求,为了指定目标文件夹,我将请求主体设置为- { "parents": [ { "id":"{parent_id}" } ] } 最后的代码是- url = https://www.googleapis.co

我正在尝试使用谷歌驱动器api将文件复制到文件夹中

正如文档所说,我正在生成一个POST请求https://www.googleapis.com/drive/v2/files/{fileId}/copy?access_token={MY_access_token}

我使用python生成请求,为了指定目标文件夹,我将请求主体设置为-

{
"parents":
[
{
"id":"{parent_id}"
}
]
}
最后的代码是-

url = https://www.googleapis.com/drive/v2/files/Ansjd021-23123414kjn2k3jn2/copy?access_token=Ya.asdsakjn2312k3n21kj3n-12312j3knb123l
body = {
    "parents":
        [
            {
                "id":"ZXC12312323123-Blahasd12323X"
            }
        ]
}
request2 = urllib2.Request(url, urllib.urlencode(body))
request2_open = urllib2.urlopen(request2)
response = request2_open.read()
request2_open.close()
print response
问题是我收到一个Http错误:404错误请求 我似乎想不出这有什么问题。我正在用谷歌游乐场做同样的事情,它在那里运行。

我用谷歌游乐场做了这件事,得到了

POST https://www.googleapis.com/drive/v2/files/1234/copy?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer ya29.AHES6ZSZB-t4b4HsR5
X-JavaScript-User-Agent:  Google APIs Explorer

{
 "parents": [
  {
   "id": "1234"
  }
 ]
}

这看起来与您的示例非常相似,只是authtoken位于http头中而不是URL中。另外,如果不对身体进行URL编码会发生什么?响应正文中是否有较长的错误消息?

API文档中提到,您可以在URL或标题中传递访问令牌。如果我没有对主体进行URL编码,则会抛出相同的错误错误请求。令人惊讶的是,使用httplib2解决了这个问题。我不知道它是怎么做到的。