автоматический вход в систему и загрузка файлов - PullRequest
1 голос
/ 12 декабря 2011

Я пытаюсь загрузить файл с помощью webbrowser class.i могу войти в систему и перейти далее с помощью webbrowser.

, но файл расположен на веб-сайте с использованием javascript.

Я попытался получить файлиспользование HttpWebRequest(fileurl) с использованием файлов cookie из веб-браузера.

код для загрузки файла после входа в систему, как показано ниже.

string myUri = @"url_of_file";   
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUri);   
request.CookieContainer = new CookieContainer();
foreach (string cookie in webBrowser1.Document.Cookie.Split(';'))
{
    string name = cookie.Split('=')[0];
    string value = cookie.Substring(name.Length + 1);
    string path1 = "/";
    string domain = ".abcde.com"; //change to your domain name

    request.CookieContainer.Add(new Cookie(name.Trim(), value.Trim(), path1, domain));
}

WebResponse res = request.GetResponse();       

StreamReader sReader = new StreamReader(res.GetResponseStream());
StreamWriter sWriter = new StreamWriter(@"D:\file.csv");

while (sReader.Peek() >= 0)
sWriter.WriteLine(sReader.ReadLine());

sWriter.Close();

однако поток ответа не имеет файла, вместо этого он имеет "url_of_file"в html body.as ниже.

<html><head></head>
<body onload="this.location.href='/Marketinfo/SubViewSubscriptionFile?product_code=DOL_INT&amp;file_id=460916&amp;subscription_id=318342&amp;loadnow=true'">
</body></html>          

Пожалуйста, кто-нибудь подскажет, что не так в этом

1 Ответ

0 голосов
/ 12 декабря 2011

Таким образом, следующим шагом является подмена сервера с использованием существующих файлов cookie и добавление всех заголовков HTTP, ожидаемых сервером.
Если вы хотите получить полное представление о фоне в запросах и ответах, откройте браузер Chrome,нажмите Ctrl + Shift + I, чтобы открыть Инструменты разработчика, выберите вкладку Сеть и повторите процесс с нуля как отдельный пользователь.Нажав на файлы в столбце «Имя», вы получите всю относительную информацию для запросов и ответов.Преимущество заключается в том, что у вас будет все необходимое для полной подмены сервера, даже не используя элемент управления веб-браузера.

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