C# Удаленный сервер возвратил ошибку: (401) Несанкционированный - PullRequest
0 голосов
/ 26 марта 2020

Я получаю это сообщение: «Удаленный сервер вернул сообщение об ошибке: (401) Unauthorized», но почти через 6 часов после попытки я решил задать его здесь.

Мой код ниже. Я испробовал все рекомендации, такие как UseDefaultCredentials = true; или PreAuthenticate = true; или CredentialCache.DefaultCredentials;, но не повезло.

Я проверяю, не верны ли мои учетные данные, но это не так. Я могу получить доступ к URL из браузера. Он использует базовую c аутентификацию.

Так что у меня нет идей. Есть идеи, что мне здесь не хватает?

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;
}

1 Ответ

0 голосов
/ 26 марта 2020

Возможно, вы не можете получить доступ к этому URL-адресу без входа в систему. Вы можете получить доступ к URL-адресу через браузер, потому что у вас есть Cook ie или токен доступа в вашем браузере и ранее вы вошли в систему. У вас нет доступа к этому URL-адресу предоставив имя пользователя и пароль. Вы должны предоставить токен доступа, который установлен на вашем Cook ie или в хранилище браузера в заголовке вашего запроса. Проверьте ваш браузер, чтобы найти токен и имя заголовка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...