API веб-сервиса Nomadesk

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

Чтобы иметь возможность загружать изображения с помощью API Nomadesk, мне нужно использовать 2 вещи:

1. https://secure.nomadesk.com/ctrller/api.php?Task=Logon&Email=api@nomadesk.com&Password=password Это ответит токеном в XMl, если вы используете правильный адрес электронной почты и пароль.

2. https://secure.nomadesk.com/ctrller/api.php?Token=rrc1d3ntb53tt6b2vhail6rdtrsxov3v&Task=GetFileservers&ShowUserList=true Здесь я получу все хранилища, доступные для моей учетной записи.

Теперь на мой вопрос:

Первая ссылка даст мне XML-ответ с дочерним узлом с именем Token. Мне нужно сохранить токен и использовать его во второй ссылке (как показано выше).

Как сохранить дочерний узел как сеанс или список, чтобы он автоматически использовал его во второй ссылке, не вводя его в другом классе?

    public string VaultSession { get; set; }
    public string Url { get; set; }

    [XmlElement("Token")]
    public string Message { get; set; }
    public string Token { get; set; }
    public string Task { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }


    public void XMLNomadesk()
    {
        List<NomadeskVault> XmlToken = new List<NomadeskVault>();
        try
        {
            XmlDocument doc = new XmlDocument();
            doc.Load("https://secure.nomadesk.com/ctrller/api.php?" + Task + "/Logon/" + Email + "/Content@JHarry.com/" + Password + "/TestTestTest/");
            XmlElement rootElement = doc.DocumentElement;

            string Url = null;

            foreach (XmlNode child in rootElement.ChildNodes)
            {
                /*if (child.Name.ToLower() == "token")
                {
                    string token = child.InnerText;
                }*/
                if (child.Name == "Message")
                    Message = child.InnerText;

                if (child.Name == "Token")
                    Token = child.InnerText;

            }

            if (Url != "")
                XmlToken.Add(new NomadeskVault(Url, Token, Task, Email, Password));


        }

        catch
        {

        }
    }


 public static NomadeskVault Current
    {
        get
        {
            NomadeskVault session =
                (NomadeskVault)HttpContext.Current.Session["VaultSession"];
            if (session == null)
            {
                session = new NomadeskVault();
                HttpContext.Current.Session["VaultSession"] = session;
            }
            return session;
        }
    }

Вся помощь очень ценится!

Структура может быть неправильной, потому что я только начал программировать на C#.

Спасибо! Ура!!

1 ответ

Ваш код не работает, потому что он читает только первый узел: Response, Вы должны прочитать всю иерархию.

Просто сделайте следующее, чтобы найти все Token элементы:

XmlDocument document = new XmlDocument();
document.Load("yoururl.com");
XmlNodeList elements = document.GetElementsByTagName("Token");
if (elements.Count == 0)
{
    System.Diagnostics.Debug.WriteLine("Token not found");
}
else
{
    Token = elements[0].InnerText;
}
Другие вопросы по тегам