- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Retrofit2 发出 POST
请求。但我遇到的情况是 response.isSuccessful()
返回 false 并且我不知道如何调试它。我检查了后端日志,没有任何错误,什么也没有。
我确保请求的 URL 正确,所有参数也正确。我做错了什么?对我来说,似乎该请求甚至没有到达我的服务器。
这就是我所做的:
我有一个带有 getter 和 setter 的 User 类:
public class User {
@SerializedName("user_id")
@Expose
private int id;
@SerializedName("first_name")
@Expose
private String firstName;
@SerializedName("last_name")
@Expose
private String lastName;
public int getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
我有我的服务:
public interface APIService {
@POST("auth/register")
@FormUrlEncoded
Call<User> register(@Field("email") String email, @Field("password") String password);
}
现在我尝试执行它,它在响应 block 中返回 false:
private void registerUser(){
Call<User> registerCall = apiService.register(email, password);
registerCall.enqueue(new Callback<User>() {
@Override
public void onResponse(Call<User> call, Response<User> response) {
if(response.isSuccessful()){
int id = response.body().getId();
String firstName = response.body().getFirstName();
String lastName = response.body().getLastName();
}else{
System.out.println("ERROR "+response.raw().body());
}
}
@Override
public void onFailure(Call<User> call, Throwable t) {
}
});
}
编辑:这是 ApiUtils:
public class ApiUtils {
private ApiUtils() {}
public static final String BASE_URL = "https://api.mydomain.com/";
public static APIService getAPIService() {
return RetrofitClient.getClient(BASE_URL).create(APIService.class);
}
}
我做错了什么?我怎样才能进行更多调试?如有任何帮助,我们将不胜感激。
最佳答案
构建改造实例(您的 getApiService 方法)似乎存在问题,要查看 api 调用的日志和状态,您可以使用 http 日志拦截器:
private static Retrofit retrofit = null;
OkHttpClient client = new OkHttpClient();
client.interceptors().add(new LogJsonInterceptor());
public static Retrofit getClient(String baseUrl) {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
}
return retrofit;
}
您可以使用拦截器查看 API 的原始 JSON 响应。希望这可以解决您的问题。
关于java - 改造 POST 请求 response.isSuccessful() 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46012986/
我想为我的应用程序使用 Google 登录,但我总是收到消息 Status{statusCode=unknown status code: 12500, resolution=null 并且登录失败。
我已使用 createUserWithEmailAndPassword 方法注册用户,他们已在我的 firebase 项目中注册(我可以看到他们的信息)。但是,当我尝试使用创建的电子邮件和密码登录时,
我正在创建一个 Android 应用程序并正在实现登录/注册功能。 我正处于注册 Activity 在我的 Firebase 应用程序中成功创建用户条目的阶段,但是,我似乎无法跟踪任务是否成功。 pr
我正在使用 firebase 作为后端服务。我正在将数据插入到我的 firebase 数据库中,我使用以下代码检查插入是否成功,但它始终返回 false。 boolean issucessfull =
我在我的 android 应用程序中使用 Firebase。在我的注册方法中,我使用了 createUserWithEmailAndPassword() 方法。为了检查我的注册过程是否成功,我正在使用
所以我根据TeamUp calendar documentation安装了Guzzle库版本6 .但是,当我尝试运行下面的代码时,我得到 Fatal error: Call to undefined
FirebaseAuth.AuthStateListener mAuthListener; private FirebaseAuth mAuth; EditText name, email, pass
我在测试我的应用程序后无意中发现了这个。我有一个包含 cardview 的 recycleListView,每个 cardview 都有一个来自 firestore 的文档。在我随机删除一些文档后,它
今天,我的实时站点没有任何变化,使用 Google 外部登录提供程序登录停止工作。这只会发生在有谷歌登录的用户身上,其他供应商都可以。这也只发生在实时站点上,我的开发机器运行相同代码的调试版本没问题。
我终于从 Instagram 的 API 获得了访问 token 的响应。 final Call accessToken = ServiceManager.createTokenService().
我正在尝试使用 Retrofit2 发出 POST 请求。但我遇到的情况是 response.isSuccessful() 返回 false 并且我不知道如何调试它。我检查了后端日志,没有任何错误,什
我正在以这种方式管理回调,但结果总是在不应该成功的时候成功。 例子: 我搜索了一个不存在的文件,它没有显示日志 我在与互联网断开连接时搜索了一个文件,但它仍然没有显示日志 即使我在与互联网断开连接时在
我正在尝试使用 Alamofire 发出获取请求。我收到一条错误消息,指出“‘Result’类型的值没有成员‘isSuccess’”。这是我的代码: func getWeatherData (url:
当useMutaion是Success时,我想做一些逻辑操作,我不知道应该使用什么,什么时候应该使用,‘Success’是布尔值,还是‘onSuccess’是回调函数?
I want to do some logic when useMutaion is success, and I don't know what and when should I use,
我正在将 DotNetOpenAuth 与 MVC 4 应用程序一起使用。突然,Google 身份验证失败(MS 正在工作)。股票代码的作用是: [AllowAnonymous] public Act
最近对 GMS 任务库进行了 @Nullable 更改。前几行反编译的 .class 看起来像 public abstract class Task { public Task() {
我有一个简单的程序,我在我的早期版本 (Swift 4) 中使用过它。我现在已经更新到新版本(Swift 5、Alamofire 5.0.0-rc.2),因为我还是初学者,所以遇到了问题。我已经可以重
我刚刚克隆了整个 android-samples 库并尝试运行 CurrentPlaceDetailsOnMap项目。我已经完成了给我的所有说明,包括创建我自己的 API。但是,每次我只是点击 Get
我在 swift 上使用 alamoFire,但我遇到了这个问题:“isSuccess' 由于'内部'保护级别而无法访问”。我试过this我也试过this ,这是我的代码: AF.request(js
我是一名优秀的程序员,十分优秀!