android downloadManager如何做http基本身份验证

xie*_*rui 9 java android

我想用android downloadManager下载文件; 但该URL是在http基本身份验证中.我可以在应用程序中获取用户名和密码.如何从主机下载文件?

DownloadManager downloadManager = (DownloadManager) appContext.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
downloadManager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

这是我的代码.我想通过"url"下载文件; 但它需要http基本身份验证.我想知道如何添加这样的身份验证:

httpClient.getState().setCredentials(new AuthScope(HOST, 80), new UsernamePasswordCredentials(user.getEmail(), user.getPassword()));
Run Code Online (Sandbox Code Playgroud)

Ale*_*MDC 21

您可以使用对象上的DownloadManager.Request.addRequestHeader(String header,String value)方法request手动添加HTTP Authorization标头.

您可以在维基百科上阅读有关此标题格式的更多信息,但基本上您只需使用用户名和密码,使用冒号':'字符连接它们,然后对结果进行base64编码.

获得编码凭据后,使用以下命令将它们添加到DownloadManager.Request对象:

request.addRequestHeader("Authorization", "Basic " + encodedCredentials);
Run Code Online (Sandbox Code Playgroud)