[英]How to write to Cloud SQL with Google Endpoints in Android Studio
[英]Encoding of colon (:) with Google Cloud Endpoints, Android Studio
從生成的客戶端庫(使用默認的Android Studio 1.02 / Gradle配置構建)將字符串參數傳遞給AppEngine Dev Server(版本1.9.15)時,我發現字符串參數中的冒號未進行URL編碼。 然后,開發服務器將冒號解釋為請求結構的一部分,該服務器返回404。我尚未在生產環境中對此進行測試。
我不知道這是否僅僅是雲端點庫或開發服務器中的錯誤,但是如果有人有修復或解決方法,那將是不勝感激的。 手動對參數進行URL編碼和解碼有效,但是不是很優雅。 謝謝!
例子:
[Api].[method]("param:with:colon").execute().getItems();
產生請求:
GET /_ah/api/.../param:with:colon HTTP/1.1
和響應:
HTTP/1.1 404 Not Found
沒有冒號的字符串參數可以正常工作。
一種解決方法是,通過在@ApiMethod批注中提供顯式的路徑屬性,將此參數從路徑參數轉換為查詢參數。
在下面的示例代碼中。 默認情況下,參數“ content”是路徑參數。 (此處的默認路徑是“ sayhi / {content}”)
@ApiMethod(name = "sayHi", httpMethod = "get")
public HelloGreeting sayHi(@Named("content") String content) throws Exception {
return new HelloGreeting(content);
}
添加“路徑”屬性后,“內容”參數將通過/從查詢參數傳遞和提取。
@ApiMethod(name = "sayHi", httpMethod = "get", path="sayhi")
public HelloGreeting sayHi(@Named("content") String content) throws Exception {
return new HelloGreeting(content);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.