我收到此“远程服务器返回错误:(401)未经授权”消息,但尝试尝试将近6个小时后,我决定在这里询问。
下面的我的代码。我尝试了所有建议,例如使用UseDefaultCredentials = true;
或PreAuthenticate = true;
或CredentialCache.DefaultCredentials;
,但没有运气。
我检查我的凭据是否不正确,但事实并非如此。我可以从浏览器访问URL。它使用的是基本身份验证。
所以我没主意了。知道我在这里缺少什么吗?
static void Main(string[] args)
{
string myno = "1238239202";
string url = string.Format(@"https://myurl.com/get?doc_type1=number&response=T&no_id={0}", myno);
string userName = @"myusernanme";
string password = "mypassword";
string fileDownloadUrl = string.Format(@"C:\users\{0}\Desktop\folder\{1}.tiff", userName, myno);
Stream stream = HttpWebResponseStream(url, userName, password);
StreamReader sr = new StreamReader(stream);
string content = sr.ReadToEnd();
string[] myResultArray = content.Split('|');
url = myResultArray[19];
//Download File
stream = HttpWebResponseStream(url, userName, password);
using (FileStream output = new FileStream(fileDownloadUrl, FileMode.Create))
{
stream.CopyTo(output);
}
stream.Dispose();
}
static Stream HttpWebResponseStream(string url, string userName, string password)
{
HttpWebRequest http = (HttpWebRequest)WebRequest.Create(url);
http.Credentials = new NetworkCredential(userName, password);
WebResponse response = http.GetResponse();
Stream stream = response.GetResponseStream();
return stream;
}
[可能没有登录就无法访问该URL地址。您可以通过浏览器访问该URL,因为您在浏览器上具有cookie或访问令牌并且以前登录过。您无法通过提供用户名来访问此URL。和密码。您必须在请求标头中提供在cookie或浏览器存储中设置的访问令牌。检查您的浏览器以找到令牌和标头名称。