2010-11-16 72 views
1

在我的項目中,我使用http get request調用webservice。 API密鑰也在http get參數中。 在j2me設備連接到互聯網之前,它顯示的URL和要求許可給用戶。這裏用戶可以很容易地看到我的API密鑰。在j2me中存儲API KEY的位置?

我也不想在我的應用程序中存儲api密鑰。因爲使用反編譯器 任何人都可以從applciation獲取api密鑰。

所以我的問題是在哪裏存儲API密鑰以及如何使用它來調用Web服務?

回答

3

如果API密鑰被要求使用web服務,那麼你必須將它存儲在你的應用程序的某個地方......順便說一句,你可以用某種加密方式存儲它,所以簡單的反編譯不會泄露它。

如果用戶輸入API密鑰,則可以將其存儲在應用程序之外的標準RMS商店中,也可以將其加密。

對於URL問題,請使用HTTP POST請求而不是HTTP GET,然後在發佈數據中發送密鑰。

+0

http post不支持該API。 我想發送一個http post到我的web服務器,我的web服務器會發送http get到api服務器並返回到我的應用程序。有沒有其他方法? – Vivart 2010-11-16 10:33:27

+0

使用像這樣的代理似乎是合理的,這種方式,你甚至可以在(功能強大)代理服務器而不是j2me應用程序中對結果進行某種預處理 – buc 2010-11-16 10:39:05

+1

我不知道這是否可行,但你可以嘗試在GET請求中對API密鑰進行URLEncoding。大量的%3F和東西可以隱藏第一次看的關鍵(它不適合在屏幕上:)) – buc 2010-11-16 10:42:47

0

您可以加密api密鑰並將其存儲爲剛纔的狀態,然後將其發佈到Web服務。