HTTP请求标头中缺少基本HTTP身份验证条目

本文关键字:HTTP 身份验证 请求 | 更新日期: 2023-09-27 18:00:17

我有以下代码:

WebClient client = new WebClient();
String un = "Username";
String pw = "Password";
client.Credentials =  new System.Net.NetworkCredential(un,pw);
client.DownloadFileCompleted +=
            new AsyncCompletedEventHandler(downloadFileCompleted);
client.DownloadFileAsync(new Uri(url), Config.LocalDir + @"'data'supportData.xml");

使用服务器上的NetworkMonitor,我收到以下信息:

Http: Request, GET /audiClave/REST/en/actions 
Command: GET
URI: /audiClave/REST/en/actions
ProtocolVersion: HTTP/1.1
Host:  210.xxx.xxx.xxx:8080
Connection:  Keep-Alive
HeaderEnd: CRLF

没有身份验证条目。我错过了什么?

HTTP请求标头中缺少基本HTTP身份验证条目

试试老式的方法:

string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(un + ":" + pw));
client.Headers[HttpRequestHeader.Authorization] = "Basic " + credentials;

IIRC WebClient在收到来自服务器的401质询之前不会发送授权请求标头。