改造2发布rxjava(登录)

时间:2016-08-10 14:28:49

标签: android post retrofit rx-java retrofit2

我是新用的retrofit2和rxjava,我能够使用GET从api获取信息,但是现在,使用POST进行登录请求不起作用也是如此。

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页面而不是我应该得到的哈希。

谢谢

1 个答案:

答案 0 :(得分:2)

我忘记了这里,我几个月前找到了一个解决方案,我所做的是创建一个UserCredentials对象来执行正文请求和一个对象来获取响应。

@POST("user/login")
Observable<LoginResponse> login(@Body UserCredentials userCredentials);
相关问题