検索

ホームページ  >  に質問  >  本文

dns劫持 - Android用XUtils下载apk文件被运营商劫持,如何处理.

https://support.qiniu.com/hc/...
七牛提供的解决方法,但是项目中应用次方法局限性太大.
遂问还有其他的解决方法吗?

//自己解决了
自己替换掉xutils的重定向handler

public class NoHttpRedirectHandler implements HttpRedirectHandler {
    private String url;

    public NoHttpRedirectHandler(String url) {
        this.url=url;
    }

    public HttpRequestBase getDirectRequest(HttpResponse response) {
        if(response.containsHeader("Location")) {
            HttpGet request = new HttpGet(url);
            MGLog.e("upgrade","可恶,但是已经阻止了重定向!");
            if(response.containsHeader("Set-Cookie")) {
                String cookie = response.getFirstHeader("Set-Cookie").getValue();
                request.addHeader("Cookie", cookie);
            }
            return request;
        } else {
            return null;
        }
    }
}

实际使用:

HttpManagerX.getHttpUtils().configHttpRedirectHandler(new NoHttpRedirectHandler(url)).download(url, target, true, new
                RequestCallBack<File>(){...}

当被重定向到其他的url时,我们把重定向的url替换为我们原来的.

PHP中文网PHP中文网2773日前667

全員に返信(4)返信します

  • 阿神

    阿神2017-04-17 17:50:40

    xutils のリダイレクトハンドラーを自分で置き換えます

    リーリー

    実際の使用:

    リーリー

    他の URL にリダイレクトされると、リダイレクトされた URL を元の URL に置き換えます。

    返事
    0
  • PHPz

    PHPz2017-04-17 17:50:40

    https に移動

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 17:50:40

    http にはこの欠陥があります。https 暗号化を使用する場合は、自己署名証明書を取得してそれを最初に使用できます。

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-17 17:50:40

    https、リダイレクトを直接無効にすると、この問題は表面上は解決する可能性がありますが、ダウンロード リンク自体にリダイレクト アクションがある場合、

    をダウンロードできなくなります。

    返事
    0
  • キャンセル返事