Загрузите файл постбэк Javascript в C # - PullRequest
1 голос
/ 06 ноября 2011

EDIT: Я буду более конкретным. Я хочу сделать скрипт для загрузки группы файлов каждый день. Чтобы сделать это программно, мне нужно нажать на кнопку JavaScript. Это просто, когда просто поместить URL в класс WebRequest, но в кнопке javascript у меня нет URL. Как я могу смонтировать этот URL?

Запрос (по Fiddler):

POST /SomeSite?Something.aspx HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://www.Site.com/Stackoverflow/SomeSite?Something.aspx
Accept-Language: pt-BR
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: www.Site.com
Content-Length: 10616
Connection: Keep-Alive
Pragma: no-cache
Cookie: idioma=pt-br; WT_FPC=id=187.16.81.13-3324702672.30186643:lv=1320587789589:ss=1320587578749

__EVENTTARGET=ctl00%24contentPlaceHolderConteudo%24lnkDownloadArquivo&__EVENTARGUMENT=&__VIEWSTATE=%BlaBlaBla

Ответы [ 2 ]

1 голос
/ 06 ноября 2011

Здесь вы можете увидеть _EVENTTARGET, который использует обратную передачу со ссылкой, кнопка с именем "lnkDownloadArquivo". Пока я понимаю, что вы хотите смоделировать тот же запрос на загрузку без нажатия кнопки. если так, то вы можете проверить здесь решение. http://ciintelligence.blogspot.com/2011/01/fetching-aspnet-authenticated-page-with.html. Здесь вы можете получить представление о том, как работает запрос обратной записи кнопки asp.net.

0 голосов
/ 06 ноября 2011

Вам нужен встроенный класс <a href="http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx" rel="nofollow">HTTPWebRequest</a> (или WebRequest). Чтобы создать его, позвоните по номеру System.Net.WebRequest.Create() и передайте свой URL, добавьте соответствующие заголовки, используя коллекцию Headers, запишите в Stream, полученный из WebRequest.GetRequestStream(), затем получите ответ, используя WebRequest.GetResponse(). Из полученного объекта ответа вы можете получить ответ Stream, используя WebResponse.GetResponseStream(). Stream может быть затем прочитан из любого другого Stream объекта.

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