C#远程服务器返回错误:(401)未经授权

问题描述 投票:-1回答:1

我收到此“远程服务器返回错误:(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;
}
c# httpwebresponse
1个回答
0
投票

[可能没有登录就无法访问该URL地址。您可以通过浏览器访问该URL,因为您在浏览器上具有cookie或访问令牌并且以前登录过。您无法通过提供用户名来访问此URL。和密码。您必须在请求标头中提供在cookie或浏览器存储中设置的访问令牌。检查您的浏览器以找到令牌和标头名称。

© www.soinside.com 2019 - 2024. All rights reserved.