Android DownloadManager在添加“后返回错误400错误请求”;“授权”;请求头
下载工作正常,代码如下:Android DownloadManager在添加“后返回错误400错误请求”;“授权”;请求头,android,authorization,android-download-manager,http-error,bad-request,Android,Authorization,Android Download Manager,Http Error,Bad Request,下载工作正常,代码如下: DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadUri)); request.addRequestHeader("Cookie", cookie); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadM
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadUri));
request.addRequestHeader("Cookie", cookie);
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
request.setDestinationUri(Uri.fromFile(new File(localPath)));
但是我们必须切换到授权令牌而不是cookie,所以我替换了这一行:
request.addRequestHeader("Cookie", cookie);
为此:
request.addRequestHeader("Authorization", myAuthToken);
现在它返回状态失败,原因400错误请求
我所尝试的:
- 我在改装标题中使用了标记-效果良好
- 我尝试从公共URI下载,比如“-工作正常
- 我试过了
- 我试过了
- 使用错误/随机字符串作为令牌-错误403禁止
- 我在这里读到错误400可能与访问令牌相连接:“如果此特定会话令牌与来自不同客户端的另一个请求的会话令牌相匹配,服务器/应用程序可能会认为这是恶意行为,并生成400错误请求错误代码。”- 但我没有 有没有办法解决这个问题
- 我发现在Apple中有保留的标题:“如果你为其中一个保留标题设置了一个值,系统可能会忽略你设置的值,或者用自己的值覆盖它,或者干脆不发送它。” 在Android中,“授权”标题也可能是非文档保留的吗?
目前我的想法已经没有了,所以我非常感谢您的建议。我成功地得到了这个错误消息:只允许一个身份验证机制;仅应指定X-Amz-Algorithm查询参数、签名查询字符串参数或授权标头。问题是链接是重定向,下载管理器在第二个请求中传递“授权”标头。(下载管理器不能很好地处理重定向)。我解决了使用禁止重定向发出请求、获取实际下载位置并在下载请求中使用此位置而不使用“授权”标题的问题;仅应指定X-Amz-Algorithm查询参数、签名查询字符串参数或授权标头。问题是链接是重定向,下载管理器在第二个请求中传递“授权”标头。(下载管理器不能很好地处理重定向)。我解决了使用禁止重定向发出请求、获取实际下载位置并在下载请求中使用此位置而不使用“授权”头的问题。
myAuthToken.replace(" ", "%20");
String encodedToken = Base64.encodeToString(myAuthToken.getBytes(), Base64.DEFAULT);