如何在android中的Retrofit 2的'Body'参数中传递字符串

Ran*_*gol 13 post android json retrofit2

@POST("api/login")
Call<ApiResponse> loginUser(@Body String user);
Run Code Online (Sandbox Code Playgroud)

这里的字符串实际上是一个JSONstring即

{"email":"test@gmail.com","password":"test"}
Run Code Online (Sandbox Code Playgroud)

无法弄清楚这有什么问题.它再次转换为json的字符串.请建议..

这就是我想对我的要求做的,如图所示.

在此输入图像描述

Roh*_*5k2 26

转换对象中的数据

public class Credentials
{
    public String email;
    public String password;
}
Run Code Online (Sandbox Code Playgroud)

将数据设置为对象

Credentials loginCredentials = new Credentials();
loginCredentials.email = "test@gmail.com";
loginCredentials.password = "password";
Run Code Online (Sandbox Code Playgroud)

打电话给你的api

@POST("api/login")
Call<ApiResponse> loginUser(@Body Credentials credentials);
Run Code Online (Sandbox Code Playgroud)

  • 我不想使用“数据模型”类将json发送到正文。我在寻找替代品。 (2认同)

Ran*_*gol 17

@POST("api/login")
Call<ApiResponse> loginUser(@Body HashMap<String, String> user);
Run Code Online (Sandbox Code Playgroud)

我们可以像这样在这里使用Hasmap.