通过他们的API搜索Google云端硬盘中的文件,他们的文档(在这里)谈到了如何对搜索字符串进行编码:
此页面上的所有示例都显示了未编码的 q 参数,其中 name = 'hello' 编码为 name+%3d+%27hello%27。
什么?如何像这样对字符串进行编码?
encodeURIComponent("name = 'hello'");
给我"name%3D'hello'"
编辑:我在这里仍然很困惑。我现在正在尝试手动执行测试查询,甚至无法使其工作。根据上面的示例,这应该有效:
https://www.googleapis.com/drive/v2/files?q=name+%3d+%27hello%27&access_token=...
但即使这样,从他们的文档中粘贴出来,也给了我:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Invalid query",
"locationType": "parameter",
"location": "q"
}
],
"code": 400,
"message": "Invalid query"
}
}
什么给?
它适用于 Google Drive API 的 v3,您不必使用 + 号。
基于您给出的示例的以下请求应该可以正常工作(当然使用有效的访问令牌):
https://www.googleapis.com/drive/v3/files?q=name%3D%27hello%27&access_token=...
试试这个
通过将某些字符的每个实例替换为表示字符的 UTF-8 编码的一个、两个、三个或四个转义序列(对于由两个"代理项"字符组成的字符,将仅是四个转义序列)来对统一资源标识符 (URI) 组件进行编码。
var encoding = encodeURIComponent(str);
例:
var q = "title contains 'hello'";
var url = "https://www.googleapis.com/drive/v2/files?q="+encodeURIComponent(q);