我想知道如何将response.body()作为参数传递,以便进一步处理它。因为现在我只能将其传递给Toast或text View的setText,它工作得很好。但是如果我尝试将其传递给将其保存为SharedPrefs或类似的函数,它只是传递一个空对象。我不明白为什么第一个有效,但第二个无效,有什么区别?
我的JSON响应正文如下所示:
{
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbkBhZG1vbi5jb20iLCJleHAiOjE1OTQ2NTQ0NjF9.4meOycRP4wbx6hVCJntxH71E03jMYJhg484zCGInUDh6EKPPVDlOhEkCC3X2mjPaCHVfT0qhiulBnC39uh4WEQ"
}
我的Pojo是这样的:
public class LoginResponse {
@Expose
@SerializedName("Authorization")
private String authToken;
public LoginResponse(String authToken) {
this.authToken = authToken;
}
public void setAuthToken(String authToken) {
this.authToken = authToken;
}
public String getAuthToken() {
return authToken;
}
}
我执行调用的函数(在点击登录按钮后调用):
private void loginCustomer() {
LoginRequest loginRequest = new LoginRequest(editTextUsername.getText().toString(), editTextPassword.getText().toString());
Call<LoginResponse> loginCall = ApiUtils.getApi().login(loginRequest);
loginCall.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(@NotNull Call<LoginResponse> call, @NotNull Response<LoginResponse> response) {
if (!response.isSuccessful()) {
Toast.makeText(LoginActivity.this, "User Credentials Wrong", Toast.LENGTH_SHORT).show();
} else {
if (response.body() != null) {
// this does not work
authToken = response.body().getAuthToken();
saveToken(authToken);
//this does not work either SharedPreferences.Editor editor = sp.edit();
editor.putString("authToken", response.body().getAuthToken());
// openUserMainActivity();
// this works Toast.makeText(LoginActivity.this, response.code() + " " + response.body().getAuthToken(), Toast.LENGTH_SHORT).show();
// this does not work Toast.makeText(LoginActivity.this, sp.getString("authToken", "no token"), Toast.LENGTH_SHORT).show();
}
}
}
任何帮助都将不胜感激。提前感谢!
您忘记调用<code>编辑器。应用() 或<代码>编辑器。提交()以保存更改。
我有一个字符串数组,我想调用Reterfit这么多次,因为这个数组的大小实际上是。但是现在,尽管我在这个循环中声明了loop并调用了referfit,但当我在调试模式下运行时,我看到我的应用程序从来没有在ApiHit方法中输入onRespons,除非他到达for循环的结尾。然后finnaly,他在每个循环迭代中做我想做的事情(输入到onResponse并执行我的其余代码,其中包括)。现在每个迭代调
我知道这个问题已经被问了很多,但我所看到的答案都没有帮助我澄清这个问题。我需要更多的指导方针,而不是一个具体的答案。 错误,没有这样的用户 到目前为止,我所尝试的是为列表中收到的每个对象创建一个类: 和Api,我认为这就是问题所在: 提前感谢!!
问题内容: 大家好,我在android 4.3中有此代码,我现在正在使用改造,但是服务器向我抛出一条错误消息“输入内容不是有效的Base-64字符串,因为它包含非base 64字符,两个以上的填充字符,或填充字符中的非法字符。” 当我使用改造时 问题答案: 对于常规对象类型(包括),翻新将使用其来序列化值。在这种情况下,默认情况下会使用Gson将正文序列化为JSON。 为了上传要使用Base64编
HI我只是新来的改造服务,并遵循本教程https://www.simplifiedcoding.net/retrofit-android-tutorial-to-get-json-from-server/它工作得很好,想创建我自己的,所以我使用了一个新的json网络http://api.androidhive.info/contacts/,其中包含 我实现了自己的接口ContactAPI。Java
我有两个功能。一个是,它以Int x和函数p作为参数,并返回布尔结果p(x)。就这么简单。 然后我有第二个函数,它就像 在调用时,有没有办法更改,使其像?(如果f返回true,则将其设为false) 比如: 我知道我可以通过masterChecker调用,但我想知道的是,是否可以更改作为参数传递的函数行为。