【发布时间】:2018-11-04 12:34:40
【问题描述】:
我想在 Retrofit 中使用 JSON 数据调用 POST 方法(REST API)。 Postman 和 Volley 库运行良好,我想在 Retrofit 中实现它..
我这两天正在研究它,没有得到任何解决方案.. 我已经推荐了this link 和this link 以及更多看起来相似但对我来说不起作用的东西..可能是我做错了什么..
public class Api {
private static Retrofit retrofit = null;
public static ApiInterface getClient() {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl("xxxx/Service1.svc/")
.addConverterFactory(GsonConverterFactory.create())
.build();
}
//Creating object for our interface
ApiInterface api = retrofit.create(ApiInterface.class);
return api; // return the APIInterface object
}}
和接口作为
public interface ApiInterface {
@FormUrlEncoded
@POST("UserLogin")
Call<SignUpResponse> registration(@Field("Mobile_no") String mobile,
@Field("Password") String pass,
@Field("RegID") String regId);}
并将 Pojo 类更新为
public class SignUpResponse {
@SerializedName("UserLoginResult")
@Expose
private UserLoginResult userLoginResult;
public UserLoginResult getUserLoginResult() {
return userLoginResult;
}
public void setUserLoginResult(UserLoginResult userLoginResult) {
this.userLoginResult = userLoginResult;
}}class UserLoginResult {
@SerializedName("Email_id")
@Expose
private String emailId;
@SerializedName("First_name")
@Expose
private String firstName;
@SerializedName("Last_name")
@Expose
private String lastName;
@SerializedName("Message")
@Expose
private String message;
@SerializedName("Mobile_no")
@Expose
private String mobileNo;
@SerializedName("Password")
@Expose
private String password;
@SerializedName("RegID")
@Expose
private String regID;
@SerializedName("Status")
@Expose
private String status;
public String getEmailId() {
return emailId;
}
public void setEmailId(String emailId) {
this.emailId = emailId;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getMobileNo() {
return mobileNo;
}
public void setMobileNo(String mobileNo) {
this.mobileNo = mobileNo;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRegID() {
return regID;
}
public void setRegID(String regID) {
this.regID = regID;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}}
在 MainActivity 上
Api.getClient().registration("xxxNumberhere","rd","222").enqueue(new Callback<SignUpResponse>() {
@Override
public void onResponse(Call<SignUpResponse> call, Response<SignUpResponse> response) {
signUpResponsesData = response.body();
Toast.makeText(getApplicationContext(), response.body().getUserLoginResult().getMessage(), Toast.LENGTH_SHORT).show();
progressDialog.dismiss();
}
@Override
public void onFailure(Call<SignUpResponse> call, Throwable t) {
Log.d("response", t.getStackTrace().toString());
progressDialog.dismiss();
}
});
我的依赖是
compile 'com.squareup.retrofit2:retrofit:2.1.0'
// JSON Parsing
compile 'com.google.code.gson:gson:2.6.1'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
提前谢谢..
【问题讨论】: