Я пытаюсь отправить данные из моего приложения на сервер с помощью модернизации. Я отправляю данные в формате JSON на интерфейс. Этот веб-сервис работает с почтальоном, но при использовании в приложении выдает следующую ошибку
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 2 column 1 path $
Во время отладки я вижу, что мои данные в правильном формате json, как показано ниже
{
"login_id":39,
"contact_no":"91775668"}
Вот мой метод отправки данных на сервер
JSONObject object=new JSONObject();
try {
object.put("login_id",loginID);
object.put("contact_no",mobileNumber);
Call<OTPResponse>call=userService.getOTP(key,object.toString());
call.enqueue(new Callback<OTPResponse>() {
@Override
public void onResponse(Call<OTPResponse> call, Response<OTPResponse> response) {
}else {
}
И мой метод POST из интерфейса
@Headers("Content-Type:application/json")
@POST(OTP_URL)
Call<OTPResponse>getOTP(@Header("API-KEY")String key,@Body String otpdetails);
OTPResponse.java
public class OTPResponse {
@Expose
@SerializedName("message")
private String message;
@Expose
@SerializedName("OTP")
private String OTP;
@Expose
@SerializedName("status")
private boolean status;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getOTP() {
return OTP;
}
public void setOTP(String OTP) {
this.OTP = OTP;
}
public boolean getStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
}
ответ от сервера
{
"status": true,
"OTP": "422733",
"message": "OTP sent successfully."
}