问题:Retrofit+Okhttp下载压缩文件的时候正常,但是获取TXT文件时出现异常。文件大小不正确,且内容出现乱码。
解决方法:请求时,对请求的Header参数进行设置。
设置语言支持中文,Accept-Encoding为“identity”。
/**
* 获取下载请求Header参数表
*
* @param startPos : 下载起始点
* @param stopPos : 下载结束点
* @author zhouronghua
* @time 18-12-27 下午9:30
*/
private WeakHashMap<String, Object> getDownloadHeaderMap(long startPos, long stopPos) {
// Header参数表
WeakHashMap<String, Object> headers = new WeakHashMap<>();
headers.put("Accept", "*/*");
headers.put("Accept-Encoding", "identity");
headers.put("Accept-Language", "zh-CN");
headers.put("Referer", downloadUrl);
headers.put("Charset", "UTF-8");
headers.put("Range", "bytes=" + startPos + "-" + stopPos);
headers.put("User-Agent", PhoneUtil.getUserAgent());
headers.put("Connection", "Keep-Alive");
return headers;
}