2010-11-16 70 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服务。