使用原始数据在正文中改造 post 请求

retrofit post request in body with raw data

url=url+/api/registerotp

我尝试使用此代码但无法正常工作

post 原始正文数据中的请求 = {"mobile_or_email": "0123456789"}

response from server

{"status":true,"message":"Otp send Your Number!","otp":6425}

public interface Retrofit_request {
@POST("registerotp")
Call<model> getUser(@Body postd  mobile_or_email);}

public class model {

@SerializedName("status")
@Expose
private Boolean status;
@SerializedName("message")
@Expose
private String message;
@SerializedName("otp")
@Expose
private Integer otp;

public Boolean getStatus() {
    return status;
}

public void setStatus(Boolean status) {
    this.status = status;
}

public String getMessage() {
    return message;
}

public void setMessage(String message) {
    this.message = message;
}

public Integer getOtp() {
    return otp;
}

public void setOtp(Integer otp) {
    this.otp = otp;
}}


 
public class RetrofitClient<minstance> {

private static final String BASE_URL=url+"/api/";
private static RetrofitClient minstance;
private Retrofit retrofit;
private RetrofitClient(){
    retrofit=new 
Retrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();
}
public static synchronized RetrofitClient getInstance(){
    if (minstance==null){
        minstance=new RetrofitClient();
    }
    return minstance;
}
public Retrofit_request getApi(){
    return retrofit.create(Retrofit_request.class);
}}

main class

    postd postd=new postd("8273217888");
    Call<model> call = RetrofitClient
            .getInstance()
            .getApi()
            .getUser(postd);
    call.enqueue(new Callback<model>() {
        @Override
        public void onResponse(Call<model> call, Response<model> response) {
            String s = null;
            s = response.message();
            Log.d("data", s);
            Log.d("data", "true"+response);

        }

        @Override
        public void onFailure(Call<model> call, Throwable t) {
            Toast.makeText(getApplicationContext(), "" + t.getMessage(), Toast.LENGTH_SHORT).show();
            Log.d("data t", t.getMessage());
        }
    });`
public class postd {
@SerializedName("mobile_or_email")
String mobile_or_email;

public postd(String mobile_or_email) {
    this.mobile_or_email = mobile_or_email;
}

public String getMobile_or_email() {
    return mobile_or_email;
}

public void setMobile_or_email(String mobile_or_email) {
    this.mobile_or_email = mobile_or_email;
}

}

log-D/data: trueResponse{protocol=h2, code=200, message=, url=https://example.com/app2/api/registerotp}

我是改造新手,所以请告诉我如何修复它

public void onResponse(Call<model> call, Response<model> response) {
            model s = null;
            s = response.body();
            Log.d("data", s.getMessage()+""+s.getStatus()+" "+s.getOtp());

        }

日志:-D/data:Otp 发送您的号码!true 2208

更改 s = response.message();,因为 response.message() 是响应的消息,而不是响应旁边返回的数据。

改用response.body()


评论中对此进行了讨论