如何将WebClient.DownloadFile与摘要式身份验证和查询字符串一起使用

Pet*_*tah 11 .net c# apache webclient digest-authentication

如何使用WebClient.DownloadFile摘要式身份验证和查询字符串?

当我尝试使用它时,我得到401响应.

这是Apache错误日志:

[Tue Jun 24 17:31:49 2014] [error] [client x.x.x.x] Digest: uri mismatch - </file-1.php> does not match request-uri </file-1.php?since=1403587422>
Run Code Online (Sandbox Code Playgroud)

以下是我尝试下载文件的方法:

Uri uri = new Uri("http://example.com/file-1.php?since=1403587422");
WebClient webClient = new WebClient();
CredentialCache credentialCache = new CredentialCache();
credentialCache.Add(
  new Uri(uri.GetLeftPart(UriPartial.Authority)),
  "Digest",
  new NetworkCredential("username", "password")
);
webClient.Credentials = credentialCache;
webClient.DownloadFile(uri, file.OutputFile);
Run Code Online (Sandbox Code Playgroud)

小智 2

WebClient webCl = new WebClient();
webCl.Credentials = new NetworkCredential("username", "Password");
webCl.DownloadFile(file download URL, fil save path with FileName);
Run Code Online (Sandbox Code Playgroud)