I'm using Retrofit to consume a REST API endpoint, and I'm having the following issue. I think the something is wrong with data model on TransactionResponse class, but not sure yet.
java.io.EOFException: End of input at line 1 column 1 path $ in Android retrofit
My call request is as follows.
@POST("pelanggan/register_user") Call register(@Body RegisterRequestJson param);
RegisterResponseJson class :
public class RegisterResponseJson {
@SerializedName("message")
@Expose
private String message;
@SerializedName("data")
@Expose
private List<User> data = new ArrayList<>();
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List<User> getData() {
return data;
}
public void setData(List<User> data) {
this.data = data;
}
}
This My WEB Service Controller
function register_user_post() {
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header("WWW-Authenticate: Basic realm=\"Private Area\"");
header("HTTP/1.0 401 Unauthorized");
return false;
}
$data = file_get_contents("php://input");
$dec_data = json_decode($data);
$email = $dec_data->email;
$check_exist = $this->Pelanggan_model->check_exist($email);
if ($check_exist) {
$message = array(
'message' => 'user exist',
'data' => []
);
$this->response($message, 200);
} else {
$count_user = $this->Pelanggan_model->count_user()->row('count') + 1;
$data_signup = array(
'id' => 'P' . $count_user,
'nama_depan' => $dec_data->nama_depan,
'nama_belakang' => $dec_data->nama_belakang,
'email' => $dec_data->email,
'no_telepon' => $dec_data->no_telepon,
'password' => sha1($dec_data->password),
'alamat' => $dec_data->alamat,
'tgl_lahir' => $dec_data->tgl_lahir,
'tempat_lahir' => $dec_data->tempat_lahir,
'reg_id' => $dec_data->reg_id
);
$signup = $this->Pelanggan_model->signup($data_signup);
if ($signup) {
$condition = array(
'password' => sha1($dec_data->password),
'email' => $dec_data->email
);
$datauser = $this->Pelanggan_model->get_data_pelanggan($condition);
$message = array(
'message' => 'success',
'data' => $datauser->result()
);
$this->response($message, 200);
} else {
$message = array(
'message' => 'failed',
'data' => []
);
$this->response($message, 200);
}
}
}
This My WEB Service Model
public function signup($data_signup){
$signup = $this->db->insert('pelanggan', $data_signup);
$dataIns = array(
'id_user'=>$data_signup['id'],
'saldo'=>0
);
$insSaldo = $this->db->insert('saldo', $dataIns);
return $signup;
}
This My SignUp Activity
private void onSignUpClick() {
showProgressDialog(R.string.dialog_loading);
RegisterRequestJson request = new RegisterRequestJson();
request.setNamaDepan(textFirstName.getText().toString());
request.setNamaBelakang(textLastName.getText().toString());
request.setEmail(textEmail.getText().toString());
request.setPassword(textPassword.getText().toString());
request.setNoTelepon(textPhone.getText().toString());
request.setAlamat(textAddress.getText().toString());
request.setTempatLahir(textPlaceOfBirth.getText().toString());
request.setTglLahir(textDateOfBirth.getText().toString());
Realm realm = Realm.getDefaultInstance();
FirebaseToken token = realm.where(FirebaseToken.class).findFirst();
Log.e(TAG, "onSignUpClick: " + token);
if (token != null) {
request.setRegId(token.getTokenId());
}
UserService service = ServiceGenerator.createService(UserService.class, request.getEmail(), request.getPassword());
service.register(request).enqueue(new Callback<RegisterResponseJson>() {
@Override
public void onResponse(Call<RegisterResponseJson> call, Response<RegisterResponseJson> response) {
hideProgressDialog();
if (response.isSuccessful()) {
if (response.body().getMessage().equalsIgnoreCase("success")) {
Intent retIntent = getIntent();
retIntent.putExtra(USER_KEY, response.body().getData().get(0));
setResult(Activity.RESULT_OK, retIntent);
finish();
} else {
Toast.makeText(SignUpActivity.this, "Register gagal", Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(SignUpActivity.this, "System error", Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<RegisterResponseJson> call, Throwable t) {
hideProgressDialog();
t.printStackTrace();
Toast.makeText(SignUpActivity.this, "System error: " + t.getLocalizedMessage(), Toast.LENGTH_LONG).show();
}
});
}
This My Log in Console
D/OkHttp: --> POST http://grajek2.my.id/api/pelanggan/register_user http/1.1 D/OkHttp: Content-Type: application/json; charset=UTF-8 Content-Length: 361 Authorization: Basic Y3Jhc2hqYWNrNTRAZ21haWwuY29tOmVtYmlsYW45OQ== Accept: application/json {"alamat":"Niten","email":"crashjack54@gmail.com","nama_belakang":"Ferdiansyah","nama_depan":"Aziz","no_telepon":"086767541234","password":"sembilan99","reg_id":"fOrYfKvtQLSelswiJrrUUQ:APA91bGh6fY6SmiG2bmiMjSd9FJV1HsM_azGxRTNukwW4FC-3W3lzE-hCqhrM0WO1sknxyqcr5JSi1CCMh2JOuMWRHZDzu_f9x6MiVupJoIF9Am67l0kzF0z4sxGFIx9HGr1MKTphqFh","tempat_lahir":"Karanganyar","tgl_lahir":"22/09/2002"} --> END POST (361-byte body)