通过C#中的Javascript回发下载文件

本文关键字:下载 文件 Javascript 中的 通过 | 更新日期: 2023-09-27 18:13:35

编辑:我会更具体一点。我想做一个脚本,每天下载一组文件。要以编程方式完成此操作,我需要单击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

通过C#中的Javascript回发下载文件

在这里,您可以看到使用回发的_EVENTTART,它带有一个名为"lnkDownloadArquivo"的链接按钮。到目前为止,我知道你们想模拟相同的下载请求,而不需要点击按钮。如果是这样,那么你可以在这里查看解决方案。http://ciintelligence.blogspot.com/2011/01/fetching-aspnet-authenticated-page-with.html.在这里,您可以了解asp.net按钮返回请求的工作原理。

您需要的内置类是HTTPWebRequest(或WebRequest(类。要创建一个,请调用System.Net.WebRequest.Create()并传递URL,使用Headers集合添加适当的标头,写入从WebRequest.GetRequestStream()检索到的Stream,然后使用WebRequest.GetResponse()检索响应。从检索到的响应对象中,可以使用WebResponse.GetResponseStream()获取响应Stream。然后可以像任何其它CCD_ 11对象一样从中读取CCD_。