Daniel Roerick Ответов: 1

C#: как загрузить XML-данные после нажатия кнопки "Принять" на веб-сайте => использование простого tumblr


Я хочу прочитать XML-данные из простого API tumblr.

При открытии например:

https://demo.tumblr.com/api/read[^]

в вашем браузере в первый раз вы должны нажать на кнопку "Принять". Затем вы получаете XML-данные, которые я хочу импортировать в небольшую программу.

Описание API находится здесь :
Tumblr API v1 | Tumblr[^]
поэтому я знаю, что XML ограничен макс. 50 записей, и я знаю, как "перебирать" их, устанавливая начальный параметр, но я даже не могу получить начальные 20 записей.

Что я уже пробовал:

До сих пор я пробовал несколько вещей. Моя последняя версия такова:

string strURL = "https://demo.tumblr.com";
            
WebClient wClient = new WebClient();
wClient.Encoding = System.Text.Encoding.ASCII;
wClient.BaseAddress = strURL;

//Read for the first time            
string strData = wClient.DownloadString("/api/read");
            
if (strData.StartsWith("<!DOCTYPE html>"))
{
     var nvcAgree = new System.Collections.Specialized.NameValueCollection
     {
       {"btn_yes", "agree" }
     };

     //Click on "Accept" and read the second time
     strData = Encoding.ASCII.GetString(wClient.UploadValues("/api/read", nvcAgree));



    /*
    Here will be code to repeatedly open the website as the XML is limited to
    50 entries
    */

     this.textBox1.Text = strData;
                
}


К сожалению, это не работает, и я всегда получаю html-данные для принятия "отказа от ответственности".


Любая помощь будет оценена по достоинству!

Овации
Даниэль Рерик

1 Ответов

Рейтинг:
1

Ashutosh Gpt

проверьте кодировку как UTF8 и установите заголовки.
WebClient wClient = новый WebClient();
wClient.Заголовки["Content-type"] = "text/xml";
wClient.Кодировка = Кодировка.Кодировке utf8;


Daniel Roerick

К сожалению, это не помогает! Я между тем сомневаюсь, правильно ли я "нажал" кнопку.

Я осмотрел кнопку (с Firefox), и она говорит:

Принимать

Хотя я удалил подчеркивание в своей коллекции NameValueCollection, оно не работает ...