簡體   English   中英

如何從Android中的演示者訪問令牌?

[英]How do I access a token from the presenter in Android?

我正在發布電子郵件和密碼,以便我可以收到回復。

@FormUrlEncoded
    @POST("api-token-auth/")
    Observable<AccessToken> getAccessToken(@Field("username") String email, @Field("password") String password);

然后,我在演示者中運行代碼。

 subscription = getAccessTokenUseCase.execute()
                .subscribeOn(Schedulers.newThread())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<AccessToken>() {
                    @Override
                    public void onCompleted() {

                        Log.v("token",accessToken.getAccessToken());
                        sharedPrefsWrapper.putString("token",accessToken.getAccessToken());
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(AccessToken accessToken) {

                    }
                });

由於access.getAccessToken(),我得到了nullpointerexception。

Caused by: java.lang.NullPointerException
                                                                   at com.wyat.wyat.accounts.presenters.LoginPresenter$1.onCompleted(LoginPresenter.java:93)
                                                                   at rx.observers.SafeSubscriber.onCompleted(SafeSubscriber.java:84)
                                                                   at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.checkTerminated(OperatorObserveOn.java:272) 
                                                                   at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.call(OperatorObserveOn.java:207) 
                                                                   at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) 
                                                                   at android.os.Handler.handleCallback(Handler.java:605) 
                                                                   at android.os.Handler.dispatchMessage(Handler.java:92) 
                                                                   at android.os.Looper.loop(Looper.java:137) 
                                                                   at android.app.ActivityThread.main(ActivityThread.java:4517) 
                                                                   at java.lang.reflect.Method.invokeNative(Native Method) 
                                                                   at java.lang.reflect.Method.invoke(Method.java:511

但是,日志顯示已收到令牌。

    02-02 13:51:29.497 26886-28414/com.wyat.wyat D/OkHttp: <-- 200 OK http://zacmwa.pythonanywhere.com/api-token-auth/ (1734ms)
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: Server: openresty/1.9.15.1
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: Date: Thu, 02 Feb 2017 10:51:29 GMT
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: Content-Type: application/json
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: Transfer-Encoding: chunked
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: Connection: keep-alive
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: Vary: Accept-Encoding
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: X-Frame-Options: SAMEORIGIN
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: Allow: POST, OPTIONS
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: X-Clacks-Overhead: GNU Terry Pratchett
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: {"token":"19d384d3abe94024a9bbbfa85b883b18413d615e"}
02-02 13:51:29.507 26886-28414/com.wyat.wyat D/OkHttp: <-- END HTTP (52-byte body)

如何保存令牌? 編輯:

public class AccessToken {
    @SerializedName("venue")
    @Expose
    private String AccessToken;

    public String getAccessToken() {
        return AccessToken;
    }
}

從日志看來,令牌的密鑰看起來是“令牌”而不是“地點”。 因此,將您的AccessToken模型修改為此

public class AccessToken {
    @SerializedName("token")
    @Expose
    private String accessToken;

    public String getAccessToken() {
        return accessToken;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM