0
您好我正在使用API,當會話令牌無效時返回登錄頁面/如果會話有效,則返回JSON響應。我怎樣才能用Retrofit來實現這個,即有多種響應類型?如果響應可以是JSon/HTML,我如何通過Retrofit 2解析響應?
P.S這是一箇舊的API,它不能改變。我是新來的改裝,我會非常感謝你的幫助。
您好我正在使用API,當會話令牌無效時返回登錄頁面/如果會話有效,則返回JSON響應。我怎樣才能用Retrofit來實現這個,即有多種響應類型?如果響應可以是JSon/HTML,我如何通過Retrofit 2解析響應?
P.S這是一箇舊的API,它不能改變。我是新來的改裝,我會非常感謝你的幫助。
會後本作評論,因爲它更是一個建議,那麼實際的答案,但這裏有雲:
(如果你是完全新的改造發表評論來解釋比較詳細)
你可以使你的調用返回一個響應,像這樣:
@GET("login/endpoint")
Call<Response> getLogin();
比你可以作出這樣
Call<Response> getLogin = ApiService.getLogin();
getLogin.enqueue(new Callback<Void>() {
@Override
public void onResponse(Call<Response> call, Response<Response> response) {
//here you can access Response.body() and use it to determine wether it's json or html and react accordingly
}
@Override
public void onFailure(Call<Response> call, Throwable t) {
//todo: error message
}
});
通話
注意:我使用的響應來自OkHttp庫。
如果這不起作用,您可以嘗試製作自己的轉換器,該轉換器檢查html/json並將其添加到改造實例的創建中。我不完全確定你可以怎麼做,但這似乎有一個總體思路:來自futurestudio的custom converter。
如果您需要更多指導/澄清,請讓我知道我今天晚些時候可以回答。
登錄如何在您的應用中工作?登錄憑據的來源是什麼?有沒有可用於檢查會話令牌是否有效的服務? –