2013-10-09 45 views
12

我試圖將數據提交到端點,但它表示,這些數據大小太大,所以我改變了方法發佈和接收的錯誤:此API不支持解析形式編碼的輸入

This API does not support parsing form-encoded input. 

接下來,我改變了類型爲application/JSON,仍以後,現在我得到:

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
"reason": "parseError", 
    "message": "Parse Error" 
} 
], 
    "code": 400, 
"message": "Parse Error" 
} 
} 

什麼是發佈大量數據的最佳方式,即2730個字節到端點,並將它處理它正常嗎?在我的情況下,所涉及的字段是Text類型,因爲我超過了應用程序引擎保存在字符串中的500個字符限制。

此外,與許多事情一樣,這在我的本地機器上運行良好,它僅在實時應用程序引擎實例中出現此錯誤。

謝謝!

+0

一個字符串,幾乎可以讓數據存儲中的實體全1MB(需要留出空間爲重點,沒有別的) 。如果你不堅持輸入,你可以在請求中接受32MB的字符串。 – bossylobster

+0

@bossylobster我注意到,如果你在端點中有一個實體類型,它會在一個帖子上使用一個JSON對象,但是如果你只有一個像String或Long等等的命名屬性,那麼你必須追加它到了URL。我認爲在JSON上進行標準化或者在我們定義API端點強制使用/使用JSON時給予我們更多的控制會更好。 – Shaun

+0

定義的命名屬性最終爲路徑參數。但是,參數名稱衝突是允許的,所以您也可以在主體中定義它。 – bossylobster

回答

21

不確定您的問題是否相關,但我收到「此API不支持解析表單編碼輸入。」錯誤,當我試圖用curl發送POST消息,如下所示:

curl -X POST -d '{"name": "Foo"}' http://foo.appspot.com/_ah/api/foo/1/endpoint 

問題是我沒有設置內容類型。如果未在命令行中指定,則使用Content-Type捲動應用程序/ x-www-form-urlencoded。 Google雲端點不接受這種內容類型。

當我改變了捲曲調用包含內容類型,它的工作:

curl -X POST -d '{"name": "Foo"}' --header "Content-Type: application/json" http://foo.appspot.com/_ah/api/foo/1/endpoint