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

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级讲师

모든 응답(4)
阿神

xutils의 리디렉션 핸들러를 직접 교체하세요

으아악

실제 사용:

으아악

다른 URL로 리디렉션되는 경우 리디렉션된 URL을 원래 URL로 대체합니다.

PHPzhong

https로 이동

伊谢尔伦

http에는 이러한 결함이 있습니다. https 암호화를 사용하는 경우 자체 서명된 인증서를 먼저 발급받아 사용할 수 있습니다.

巴扎黑

https, 리디렉션을 직접 비활성화하면 이 문제가 표면적으로 해결될 수 있지만 다운로드 링크 자체에 리디렉션 동작이 있는 경우 다운로드가 불가능합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿