使用原始数据在正文中改造 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()
。
评论中对此进行了讨论
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()
。
评论中对此进行了讨论