я впервые использую здесь модернизацию и хочу зарегистрировать пользователя в базе данных MySQL. Код, кажется, хорошо, но не работает, так как я получаю исключение тайм-аута на onFailure (Call call, Throwable t) метод.
![enter image description here](https://i.stack.imgur.com/Jx0A2.png)
Вот мой модифицированный интерфейс API
public interface RegisterUserRetrofit {
@GET("insert_user_post.php")
Call <User> createUser(
@Query("name") String name,
@Query("password") String password,
@Query("mobile") String mobile,
@Query("email") String email,
@Query("image") String image
);
}
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(REGISTER_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
private void registerUserUsingRetrofit (String name, String password, String mobile, String email, String photo) {
User user = new User(name, password,email, mobile, photo);
Call <User> call = registerUserRetrofit.createUser(name, password, mobile, email, photo);
call.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
if (response.code() == 200){
progressDialog.dismiss();
Toasty.success(Register.this,"Registered Succesfully",Toast.LENGTH_SHORT,true).show();
}else if (response.code()== 0){
progressDialog.dismiss();
Toasty.success(Register.this,"Somthing went wrong, server error",Toast.LENGTH_SHORT,true).show();
}
}
@Override
public void onFailure(Call<User> call, Throwable t) {
progressDialog.dismiss();
Toasty.success(Register.this,"Registered failed R",Toast.LENGTH_SHORT,true).show();
Log.e(LOG_TAG,"Error response code: " + t.getMessage());
}
});
}
, а вот мой API, использующий PHP
<?php
header('Content-Type: application/json');
if (!isset($_GET['name']) || empty($_GET['name']))
{
echo "Enter full name";
return;
}
if (!isset($_GET['password']) || empty($_GET['password']))
{
echo "Enter password";
return;
}
include "connection.php";
$user_name = $_GET['name'];
$user_password = $_GET['password'];
$user_email = $_GET['email'];
$user_mobile = $_GET['mobile'];
$user_image = $_GET['image'];
$sql = "INSERT INTO `mobile_souq_user`(`user_name`, `user_password`, `user_email`, `user_mobile`, `user_image`) VALUES ('$user_name','$user_password','$user_email','$user_mobile','$user_image')";
// if (mysqli_query($con,$sql)){
// $status ="ok";
// }else{
// $status = "error";
// }
if ($conn->query($sql) === TRUE) {
//echo "200";
echo json_encode(Array('response' => 200));
} else {
//echo "0";
echo json_encode(Array('response' => 0));
}
// if(mysqli_query($con, $sql)){
// $status = "ok";
// }else {
// $status = "error";
// }
// echo json_encode(Array('response' => $status));
$conn->close();
?>
Я не могупонять, почему это не работает, так как код не выдает ошибку.
только как на изображении выше Исключение тайм-аута.
Я использовал AsyncTask и HttpURLConnection, и он работал нормально и быстро без ошибок. в то время как использование дооснащения занимает немного времени, оно дает мне сообщение об ошибке.
Может кто-нибудь подсказать мне, что здесь за ошибка и как ее исправить?