2016-09-14 10 views
0

Retrofit(RxJava)を使用してテキストファイルをダウンロードしています。Retrofit:Web認証が必要かどうかを検出

@Streaming 
@GET 
Observable<ResponseBody> download(@Url String file); 

ウェブ認証が必要な公開Wi-Fiを使用している場合を除き、すべて正常に動作します。この場合、ダウンロードはまだ成功しており、受信したファイルにはその認証WebページのHTMLが含まれています。この場合、どのようにエラーを確認して上げますか?私はInterceptor、NetworkInterceptor(Okhttp)、リダイレクト(Retrofit)を無効にしましたが、例外はスローされないため運はありませんでした。

答えて

1

どちらのチェックサムファイル、あなたはそれを得るとき、それを確認するか、コンテンツタイプを確認してください。

@Streaming 
@GET 
Observable<Response<ResponseBody>> download(@Url String file); 

download("http://...") 
.map(response -> { 
    if(!"application/my-content-type".equals(
      response.headers("Content-Type")) { 
     throw new RuntimeException("Bad download"); 
    } 
    return resource.body(); 
}) 
関連する問題