gpt4 book ai didi

android - 即使 header 状态代码为 200,Retrofit 也会调用 failure() 方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:23:20 24 4
gpt4 key购买 nike

我正在为我的后端通信使用 retrofit ,下面是我 retrofit 调用的 fragment :

serverObject.createEvent(Utils.getAuthHeader(), params, new Callback<CreateEventResponse>() {
@Override
public void success(CreateEventResponse outputObj, retrofit.client.Response response) {

Log.d(TAG, outputObj.getTitle() + " is successfully created.");
setResult(Activity.RESULT_OK);
finish();
}

@Override
public void failure(RetrofitError retrofitError) {

//Header status code
Log.e("failure", String.valueOf(retrofitError.getResponse().getStatus()));
Log.e("failure", String.valueOf(retrofitError.getResponse().getBody()));

}
});

上面的代码在 Logcat 中打印:

04-16 16:26:11.751  25131-25131/com.android.myapp.app E/failure﹕ 200
04-16 16:26:11.751 25131-25131/com.android.myapp.app E/failure﹕ null

这可能是谁?

任何人都可以帮助解释为什么会发生这种情况。

我还设置了 setLogLevel(RestAdapter.LogLevel.FULL); 这样我就可以在我的 logcat 中看到每个值。我的响应来自服务器是正确的,但为什么调用了 failure()

请帮忙!

提前致谢。

最佳答案

可能改造会抛出调用失败方法的异常。使用:

retrofitError.getCause()

或者进行一些调试。您使用 CreateEventResponse 注册回调,因此当 body 为 null 时,您可能会捕获解析异常。

关于android - 即使 header 状态代码为 200,Retrofit 也会调用 failure() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23107579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com