2016-08-10 5 views
1

Я новичок в retrofit2 и rxjava, я смог использовать GET для получения информации из api, но теперь, используя POST для запроса на вход, не работает, как тоже можно судить.retrofit 2 post rxjava (login)

Application application = Application.get(mLoginView.getContext()); 
     Service Service = application.getmService(); 
     Log.i(TAG,""+username); 
     Log.i(TAG,""+password); 
     mSubscription = Service.login(username,password) 
       .observeOn(AndroidSchedulers.mainThread()) 
       .subscribeOn(Schedulers.io()) 
       .subscribe(new Subscriber<User>() { 


        @Override 
        public void onCompleted() { 
         Log.i(TAG,"User: " + mUser.getHash()); 
        } 

        @Override 
        public void onError(Throwable e) { 
         e.printStackTrace(); 
         Log.i(TAG,"USERNAME DON'T EXIST"); 
        } 

        @Override 
        public void onNext(User user) { 

         // LoginPresenter.this.mUser = user; 
        } 
       }); 

Услуги:

public interface Service { 

String mUrl = "https://blabla.com/api/index.php/"; // TODO Change 

@FormUrlEncoded 
@POST("user/login") 
Observable<User> login(@Field(value="email",encoded=true) String email, @Field(value="password",encoded = true) String password); 

Я ввожу POST с именем и перейти от существующего пользователя и вернуть мне 404 страниц, а не хэш-им должен получить.

Спасибо

+0

Вы точно знаете URL? – Seishin

+0

Да, что url в коде является образцом, но я уверен, что URL-адрес верен в коде –

+0

'username' и' pass' urlencoded вашей программой? – nshmura

ответ

0

Я забыл это было здесь, я нашел решение месяцев назад, и то, что я сделал, был создать объект UserCredentials сделать запрос на тело и объект, чтобы получить ответ.

@POST("user/login") 
Observable<LoginResponse> login(@Body UserCredentials userCredentials); 
Смежные вопросы