【发布时间】:2015-05-31 04:40:18
【问题描述】:
我正在开发一个移动应用程序,它通过网络服务调用从网络服务器检索一些数据。使用 API 密钥对不同 Web 服务的调用停止。现在的问题是这个 API 密钥必须如何以及在哪里存储?值得注意的是,通信是通过 HTTPS 协议进行的。
【问题讨论】:
-
在 eclipse 中你将它存储在属性文件中,在 android studio 中你将它存储在 build.config 文件中
我正在开发一个移动应用程序,它通过网络服务调用从网络服务器检索一些数据。使用 API 密钥对不同 Web 服务的调用停止。现在的问题是这个 API 密钥必须如何以及在哪里存储?值得注意的是,通信是通过 HTTPS 协议进行的。
【问题讨论】:
你可以使用 res->values->strings.xml
但如果你想让它更安全,那么你可以使用 Api。假设您有一个名为 www.myapiKeysHolder.com 的 api。这个 api rechive 一个帖子数据“app_pkg”,如果这是您的应用程序包名称,那么它会提供您的 api 密钥作为响应。然后您可以将此密钥保存在您的 sqlite 数据库中或共享性能。
一些样品来找你:
// Create AsycHttpClient object
AsyncHttpClient client = new AsyncHttpClient();
// Http Request Params Object
RequestParams params = new RequestParams();
params.put("app_pkg", getPackageName().toString());
client.post("www.myapiKeysHolder.com", params, new
AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
String api=response; //Api give your Api Key
updateSQLite("api_key",api);
}
});
要支持此代码,您将需要此 jar 文件。
https://www.dropbox.com/s/ofjcyo7zz1q86p7/android-async-http-1.3.1.jar
对不起,我的英语不好。
【讨论】: