فوری: مشکل در استفاده از کتابخانه Retrofit 2

ساخت وبلاگ
سلام به همگی
یه سوال از حرفه ای تر های انجمن دارم
تو برنامه ام نیاز به استفاده از تعدادی وب سرویس دارم و برای پیاده سازی اونها می خوام از کتابخونه Retrofit 2 استفاده کنم
همون طور که می دونید در زمان enqueue سرویس ساخته شده دو متد onResponse و onFailure ساخته میشن که متد onResponse زمانی اجرا میشه که داده های مورد نظرمون با موفقیت به سرور ارسال شده باشه و پاسخ متناظر با اون رو هم دریافت کرده باشیم و متد onFailure هم زمانی اجرا میشه که در زمان ارسال داده های مورد نظر به سرور مشکلی ایجاد شده باشه.

حال دستوراتی که من در متد onResponse و onFailure نوشتم بصورت زیره:

myService.registerUser(signup).enqueue(new Callback<SignupResponse>() { @Override public void onResponse(Call<SignupResponse> call, Response<SignupResponse> response) { if (response.isSuccessful()) { alertShowMessage.setVisibility(View.VISIBLE); alertShowMessage.setMessageText(response.body().getMessage()); } else { alertShowMessage.setVisibility(View.VISIBLE); alertShowMessage.setMessageText(response.body().getMessage()); } } @Override public void onFailure(Call<SignupResponse> call, Throwable t) { alertShowMessage.setVisibility(View.VISIBLE); alertShowMessage.setMessageText(t.getMessage()); }
});

و همین طور کد های مربوط به سرویس registerUser رو هم به صورت زیر تعریف کردم:
public interface MyServiceAPI { String BASE_URL = "http://192.168.1.37/restful/"; @POST("signup.php") Call<SignupResponse> registerUser(@Body Signup signup);
}

لازم به ذکره که برای اینکه سرویس registerUser اجرا بشه نیاز به 9 تا داده داره که اونها رو بصورت یه کلاس Model به اسم Signup درآوردم و خروجی سرویس هم که به صورت Json هستش بصورت یه کلاس Model به اسم SignupResponse درآوردم که در ادامه کدهای این دو کلاس و همین طور نمونه ای از خروجی رو در گذاشتم:

نمونه خروجی وب سرویس

کد:

{"message":"اطلاعات شما با موفقیت ثبت گردید. نام کاربری و رمز عبور به شماره تماس وارد شده ارسال گردید."}


کدهای مربوط به کلاس Signup
public class Signup { private String name; private String family; private String mobile; private String dateOfBirth; private String province; private String brand; private String model; private String version; private String serialnumber; public String getName() { retu name; } public void setName(String name) { this.name = name; } public String getFamily() { retu family; } public void setFamily(String family) { this.family = family; } public String getMobile() { retu mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public String getDateOfBirth() { retu dateOfBirth; } public void setDateOfBirth(String dateOfBirth) { this.dateOfBirth = dateOfBirth; } public String getProvince() { retu province; } public void setProvince(String province) { this.province = province; } public String getBrand() { retu brand; } public void setBrand(String brand) { this.brand = brand; } public String getModel() { retu model; } public void setModel(String model) { this.model = model; } public String getVersion() { retu version; } public void setVersion(String version) { this.version = version; } public String getSerialnumber() { retu serialnumber; } public void setSerialnumber(String serialnumber) { this.serialnumber = serialnumber; }
}

کدهای مربوط به کلاس SignupResponse
public class SignupResponse { @SerializedName("message") @Expose private String message; public String getMessage() { retu message; } public void setMessage(String message) { this.message = message; }
}

حال مشکلی که من دارم اینه که زمانی که روی دکمه ثبت نام کلیک می کنم و سرویس بالا رو اجرا می کنم، کدهای مربوط به متد onFailure اجرا میشن و پیغام زیر در ویجت alertShowMessage چاپ میشه:

کد:

Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $


درصورتی که وقتی به phpMyAdmin رجوع می کنم رکودی در جدول مربوطه بدون داده هایی که توسط وب سرویس باید ارسال میشدن، درج شده.

چند روزی هست که با این مشکل درگیرم علت و راه حل مشکل رو نتونستم پیدا کنم
از دوستان کسی می دونه چرا فیلدهای کلاس Signup ارسال نشده و این پیغامی که چاپ شده به چه دلیلی هستش و راه حل برطرف کردنش چیه ؟؟؟
خواهشا راهنماییم کنید
با تشکر

روید باکس...
ما را در سایت روید باکس دنبال می کنید

برچسب : نویسنده : کاوه محمدزادگان roid بازدید : 154 تاريخ : چهارشنبه 9 تير 1395 ساعت: 23:44