dns劫持 - Android用XUtils下载apk文件被运营商劫持,如何处理.
PHP中文网
PHP中文网 2017-04-17 17:48:40
0
4
673

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中文网

认证0级讲师

membalas semua(4)
阿神

Ganti pengendali ubah hala xutils sendiri

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;
        }
    }
}

Penggunaan sebenar:

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

Apabila diubah hala ke URL lain, kami menggantikan URL yang diubah hala dengan URL asal kami.

PHPzhong

ambil https

伊谢尔伦

http mempunyai kecacatan ini Jika anda menggunakan penyulitan https, anda boleh mendapatkan sijil yang ditandatangani sendiri dan menggunakannya terlebih dahulu.

巴扎黑

https, jika anda melumpuhkan pengalihan secara langsung, masalah ini mungkin dapat diselesaikan di permukaan, tetapi jika pautan muat turun anda sendiri mempunyai tindakan pengalihan, anda tidak akan dapat memuat turun

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan