使用 Retrofit 在 HTTP 请求中的何处以及如何放置键值对? (不违反 HTTP 标准)
Where and how to place key value pairs in an HTTP request using Retrofit? (Without breaking HTTP standards)
对于 android 应用程序中的 classic 用户名和密码帐户身份验证过程,我可以通过多种方式完成此操作:
- 将用户名和密码字段作为 HTTP headers。 (使用 Retrofit 注释最简单)
- 创建一个 Hashmap 并将用户名和密码放入其中,然后在 HTTP body 中传递 hashmap。 (介绍一些样板代码)
- 创建一个 POJO class 并为用户名和密码添加属性,然后使用 GSON 序列化将此 object 传递到 body 中。 (在我看来,在我们这里的案例中,这是太多不必要的样板代码)
我的问题是,根据标准使用 Retrofit 完成此类 REST 调用的最佳实践是什么,同时又不违反 HTTP 标准或使代码看起来很脏或 over-engineered?
这是基本身份验证。
REST 架构中的常见做法是像这样使用授权 header:
Authorization: Basic base64(username:password)
https://en.wikipedia.org/wiki/Basic_access_authentication
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization
注意不要让 :
在密码或用户名中或 url-encode 他们!
对于 android 应用程序中的 classic 用户名和密码帐户身份验证过程,我可以通过多种方式完成此操作:
- 将用户名和密码字段作为 HTTP headers。 (使用 Retrofit 注释最简单)
- 创建一个 Hashmap 并将用户名和密码放入其中,然后在 HTTP body 中传递 hashmap。 (介绍一些样板代码)
- 创建一个 POJO class 并为用户名和密码添加属性,然后使用 GSON 序列化将此 object 传递到 body 中。 (在我看来,在我们这里的案例中,这是太多不必要的样板代码)
我的问题是,根据标准使用 Retrofit 完成此类 REST 调用的最佳实践是什么,同时又不违反 HTTP 标准或使代码看起来很脏或 over-engineered?
这是基本身份验证。
REST 架构中的常见做法是像这样使用授权 header:
Authorization: Basic base64(username:password)
https://en.wikipedia.org/wiki/Basic_access_authentication
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization
注意不要让 :
在密码或用户名中或 url-encode 他们!