C # - XML ​​читать из https ссылки + всплывающее окно имени пользователя / pw - PullRequest
0 голосов
/ 12 декабря 2010

Привет

Я пытаюсь получить xml-файл с веб-сайта, который требует от меня ввода имени пользователя и ключа API.

Пример:

public void GetTournaments(string userName, string apiKey, string tournamentName)
{
 string getXMLAdress = "https://" + userName + ":" + apiKey + "@challonge.com/api/tournaments/" + tournamentName + "/participants.xml";
 XmlDocument tournamentsXML = new XmlDocument();
 tournamentsXML.Load(getXMLAdress);
}

API на веб-сайте показывает, что вам нужна только эта информация ... однако он всегда возвращает 401, к которым у меня нет доступа.Теперь я заметил, что когда я помещал это в свой браузер, мне все равно приходилось заполнять имя пользователя и пароль.При использовании приведенного выше URL-адреса он показывает всплывающее окно, в котором вы можете указать свое имя пользователя / пароль.

Я всегда мог позволить пользователям загружать файлы самостоятельно, но это было бы хлопотно.Поэтому мне интересно, есть ли альтернативный способ или я могу заполнить всплывающее окно через C #.

Заранее спасибо.

1 Ответ

2 голосов
/ 12 декабря 2010

Вы можете передать учетные данные через WebClient и использовать его для загрузки необходимого XML-файла с веб-сервера.

    public static void GetFileWithCredentials(string userName, string password, string url)
    {

        using (WebClient wc = new WebClient())
        {
            wc.Credentials = new NetworkCredential(userName, password);
            string xml = wc.DownloadString(url);

            XmlDocument tournamentsXML = new XmlDocument();
            tournamentsXML.LoadXml(xml);
        }

    }

Если userName содержит информацию о домене, передайте ее отдельно в перегруженном конструктореиз NetworkCredential(string userName, string password, string domain)

Надеюсь, это поможет!

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