Как зарегистрировать пользователя приложения для Android с помощью Laravel Api - PullRequest
0 голосов
/ 06 мая 2019

Я хочу зарегистрировать пользователя, используя laravel api.Api работает на сервере и работает на почтальоне, но в моем приложении он не работает.Я использую библиотеку retrofit2, чтобы использовать ее.Вот ошибка

2019-05-06 17: 23: 44.134 473-473 / com.engrsoft.www.onlineservices E / response Строка: Response {protocol = http / 1.1, code = 200, message =ОК, url = http://zattest.com.zawataafnantechnologies.com/newapi/api/register}

Api.java

public interface Api {

    @FormUrlEncoded
    @POST("register")

    Call<ResponseBody> register(
            @Field("name") String name,
            @Field("email") String email,
            @Field("password") String password
    );

RetrofitClient.java

public class RetrofitClient {

    private static final String BASE_URL="http://zattest.com.zawataafnantechnologies.com/newapi/api/";

    private static RetrofitClient retrofitClient;
    private Retrofit retrofit;

    private RetrofitClient(){
        retrofit= new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }

    public static synchronized RetrofitClient getRetrofitClient(){
        if (retrofitClient == null){
            retrofitClient = new RetrofitClient();
        }
        return retrofitClient;
    }
    public Api getApi(){
        return retrofit.create(Api.class);
    }

RegisterActivity.java

Регистрация метода.Ответ приходит, но не удаётся

public void register(){

                        Call<ResponseBody> call = RetrofitClient
                                .getRetrofitClient()
                                .getApi()
                                .register(txt_username,txt_email,txt_password);
                        call.enqueue(new Callback<ResponseBody>() {
                                         @Override
                                         public void onResponse(Call<ResponseBody> call, retrofit2.Response<ResponseBody> response) {
                                             String s= response.toString();
                                             Log.e("response String", s);
                                             Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();

                                         }

                                         @Override
                                         public void onFailure(Call<ResponseBody> call, Throwable t) {
                                             Toast.makeText(getApplicationContext(),t.getMessage(),Toast.LENGTH_LONG).show();

                                         }
                                     }
                    }

1 Ответ

0 голосов
/ 07 мая 2019

Это сообщение

2019-05-06 17:23:44.134 473-473/com.engrsoft.www.onlineservices E/response String: Response{protocol=http/1.1, code=200, message=OK

не означает ответ об ошибке, как вы сказали. Фактически это сообщение Ok / success, которое означает, что запрос успешно выполнен.

Теперь вы не регистрируете тело ответа. Так что поменяй

String s= response.toString();

до

String s= response.body().toString(); для получения правильного сообщения от бэкэнда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...