如果我正确理解您的问题,您就知道如何在 Android 中进行 POST,但您需要一种“安全”的方式来执行此操作。我认为您正在寻找的是一种基本的身份验证方法。
最简单的方法是让用户使用用户名/密码登录(用户名可以存储在 SharedPreferences 或其他方式中)。正如一位用户所指出的那样,人们担心在 SharedPreferences 中存储密码,尽管这里有许多其他答案和应用程序使用这种存储方法 - 只需使用密码 ONCE 就可以工作,直到令牌过期。服务器应用程序将在首次成功验证后提供此令牌。您必须跟踪数据库中的令牌并为其分配到期日期以提高安全性。所有这些都只能通过 SSL 执行,因此 POST 有效负载是加密的。
反编译应用程序和从请求中找出 API 端点是两件完全不同的事情。对于您的情况,您不必真正担心会掩盖您的端点,只需保护 POST (JSON) 有效负载并提供简单的授权方法。无论如何,您的端点都将被探测,因此最好简单地设置身份验证机制,以便只有获得授权的用户才能看到数据。
创建同步适配器将有助于管理所有身份验证工作,并且用户的 USERNAME(和令牌)可以相对安全地保存在共享首选项中。但是,您必须在您的服务器上设置此用户名/密码/令牌身份验证系统。这是一个示例流程:
User [username/password] -> Server [authentication] -> Server [token] -> User [store token]
然后,应用程序将使用其令牌对端点进行身份验证,直到它过期(服务器将在过期时通知应用程序):
User [token] -> Server [validates token] -> User [data] -> Server [data]
令牌可以像随机 GUID 一样简单。
这将确保用户有权接收数据,并且只能通过 POST 请求并且只能通过 SSL 执行,以确保 JSON 有效负载尽可能安全,不被窥探。您可以在这里进入一大堆其他领域,例如限速请求以防止人们使用暴力攻击或其他方式轰炸您的 API,但这一切都将在服务器端完成。
当然,这不是最安全的方法,因为有更好的协议,如 OAuth,但它们的实现也更复杂客户端/服务器应用程序。不过,我强烈建议您调查它们。
来源:
创建同步适配器:http://developer.android.com/training/sync-adapters/creating-sync-adapter.html
如何在 Android 中进行 HTTP POST:How to do a HTTP Post in Android?
PHP GUID:http://php.net/manual/en/function.com-create-guid.php