2016-02-21 65 views
0

搜索谷歌雲端硬盤通過他們的API文件,它們的文檔(here)說,這如何編碼搜索字符串:如何編碼Google API搜索查詢?

此頁面上的所有示例顯示了未編碼q參數,其中名=「你好」編碼爲name +%3d +%27hello%27

那是什麼?我如何編碼這樣的字符串?

encodeURIComponent("name = 'hello'");給我 「的名字%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" 
} 
} 

是怎麼回事?

回答

-1

嘗試這個

通過由一個,兩個,三個或四個表示字符的UTF-8編碼的轉義序列替換某些字符的每個實例進行編碼的統一資源標識符(URI)的組分(將對於由兩個「代理」字符組成的字符,只有四個轉義序列)。

var encoded = encodeURIComponent(str);

例子:

var q = "title contains 'hello'"; 
var url = "https://www.googleapis.com/drive/v2/files?q="+encodeURIComponent(q); 
+0

試過了。 'encodeURIComponent'不會讓他們想要的東西。看我的問題中的例子。 – nicholas

0

它的工作原理與谷歌雲端硬盤API的v3和你沒有使用+號。

根據您所應該可以正常工作(當然,有效的訪問令牌)的例子以下請求:

https://www.googleapis.com/drive/v3/files?q=name%3D%27hello%27&access_token=...