使用以下代码,下载工作正常:
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错误请求。
我尝试过的事情:
myAuthToken.replace(" ", "%20");
因为myAuthToken中只有一个“”-错误 403禁止 (这似乎没有问题,因为此答案中也包含“”:https://stackoverflow.com/a/25677680/10227935)
String encodedToken = Base64.encodeToString(myAuthToken.getBytes(), Base64.DEFAULT);
错误403禁止
我发现在Apple中有保留的标头:“如果您为这些保留的标头之一设置了值,系统可能会忽略您设置的值,或用自己的值覆盖它,或根本不发送。” -https://developer.apple.com/documentation/foundation/nsurlrequest#1776617
是否可能在Android中也未记录“授权”标头?
目前我的想法已经用完了,所以我非常感谢任何建议。