У меня проблемы с отправкой почтового запроса в мой API.мне нужно отправить данные в такой форме
userinfo:{
Name="sample",
Company="sample",
Contact="Contact"
},
Password="",
PasswordConfirm="",
TokenStr=""
}
Нужно ли использовать аннотацию @Body
для отправки моего запроса?Вот мой пример кода (обновлено)
ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
User userReg = new User("asd","asd","bryce@email.com","asd",
"asd","asd","asd","1");
UserRegistration sendReg = new UserRegistration(userReg,"asd","asd",
token);
final Call<UserRegistration> tableCall = apiService.getUserRegistration(sendReg);
tableCall.enqueue(new Callback<UserRegistration>() {
@Override
public void onResponse(Call<UserRegistration> call, Response<UserRegistration> response) {
int statusCode = response.code();
if (response.isSuccessful()){
Log.e("asdasd",response.body().toString());
}else{
Log.e("asdas",response.message());
}
}
@Override
public void onFailure(Call<UserRegistration> call, Throwable t) {
t.printStackTrace();
Log.e("ERROR",""+t.getMessage()+" "+t.getLocalizedMessage());
Toast.makeText(getApplicationContext(), ""+t.toString(), Toast.LENGTH_LONG).show();
}
});
, а вот мой ApiInterface (обновлено)
@POST("UserRegistration")
@FormUrlEncoded
Call<UserRegistration> getUserRegistration(@Body UserRegistration userRegistration);
Я добавил класс модели
public class UserRegistration {
User items;
String Password;
String PasswordConfirm;
String TokenStr;
public UserRegistration(User items, String password, String passwordConfirm, String tokenStr) {
this.items = items;
Password = password;
PasswordConfirm = passwordConfirm;
TokenStr = tokenStr;
}
}
public class User {
private String COMPANY;
private String CONTACT_NO;
private String EMAIL;
private String FNAME;
private String LNAME;
private String MI;
private String POSITION;
private String RID;
public User(String COMPANY, String CONTACT_NO, String EMAIL, String FNAME, String LNAME, String MI, String POSITION, String RID) {
this.COMPANY = COMPANY;
this.CONTACT_NO = CONTACT_NO;
this.EMAIL = EMAIL;
this.FNAME = FNAME;
this.LNAME = LNAME;
this.MI = MI;
this.POSITION = POSITION;
this.RID = RID;
}
}
Теперь я получаю сообщение об ошибке, говорящее о том, что параметры @Body нельзя использовать с кодированием формы или нескольких частей.(параметр # 1).
Но я получил неверный запрос.я знаю, что моя просьба неверна.и я новичок в Android.Я пытался выяснить, как это сделать, но не нашел полезных ответов.