使用 Retrofit 在 HTTP 请求中的何处以及如何放置键值对? (不违反 HTTP 标准)

Where and how to place key value pairs in an HTTP request using Retrofit? (Without breaking HTTP standards)

对于 android 应用程序中的 classic 用户名和密码帐户身份验证过程,我可以通过多种方式完成此操作:

  1. 将用户名和密码字段作为 HTTP headers。 (使用 Retrofit 注释最简单)
  2. 创建一个 Hashmap 并将用户名和密码放入其中,然后在 HTTP body 中传递 hashmap。 (介绍一些样板代码)
  3. 创建一个 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 他们!