Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Awesomium在ASP.NET Web表单回发后自动下载_Javascript_C#_Asp.net_Download_Awesomium - Fatal编程技术网

Javascript 使用Awesomium在ASP.NET Web表单回发后自动下载

Javascript 使用Awesomium在ASP.NET Web表单回发后自动下载,javascript,c#,asp.net,download,awesomium,Javascript,C#,Asp.net,Download,Awesomium,我有一个使用ASP.NET web表单编写的网页。整个页面正文被包装在一个表单标记中,该标记在提交时用Excel文件而不是HTML页面进行回复。该页面还包括触发表单提交的JavaScript。普通浏览器对此情况的反应是询问Excel文件的保存位置(Awesomium也会这样做) 我无法修改页面,但我想自动下载Excel文件。我不能使用HTTP客户机,因为上面提到的JavaScript计算了许多复杂的东西来模拟;每次调用函数时,它都会为窗体返回不同的操作值 我目前正在使用Awesomium.net

我有一个使用ASP.NET web表单编写的网页。整个页面正文被包装在一个
表单
标记中,该标记在提交时用Excel文件而不是HTML页面进行回复。该页面还包括触发表单提交的JavaScript。普通浏览器对此情况的反应是询问Excel文件的保存位置(Awesomium也会这样做)

我无法修改页面,但我想自动下载Excel文件。我不能使用HTTP客户机,因为上面提到的JavaScript计算了许多复杂的东西来模拟;每次调用函数时,它都会为窗体返回不同的操作值

我目前正在使用Awesomium.net,并已将其配置为开始下载。使用Fiddler,我看到文件的下载正确启动。不幸的是,它似乎没有完成:(.或者,该文件已检索,但Awesomium.net中没有任何更改:没有触发任何事件通知我下载已完成,我不知道从何处检索该文件

我怀疑这是因为返回的mimetype不是
text/html
,而是
application/vnd.ms excel
;我猜Awesomium需要一个html文件,但不知道如何处理excel文件。它试图显示一个“另存为”模式对话框,但由于它用于无头服务,因此没有可用的弹出窗口

因此,我没有收到任何事件(或者,我在错误的位置查找),并且无法通过编程确定文件何时到达

有没有办法解决这个问题?也许可以截取所有的回复?
我需要以编程方式控制“另存为”对话框,并选择保存文件的位置。

我发现解决此问题还有一些困难 第一:我无法修改内容处置头,因为似乎出于我完全不知道的原因,响应没有被我用作代理的fiddlerSDK截获。 无论如何,幸运的是,请求被拦截了。 因此,我的解决方法(非常肮脏)是在代理中拦截awesomium发出的请求,将所有头文件和cookie分开,然后中止它。 Awesomium现在不再期待任何回复。 但我手上有它用于请求的所有信息。 然后我制作了一个新的HttpRequestMessage,并使用HttpClient发送它。 通过这种方式,我也可以更好地处理回复,直接在内存中进行处理,而无需将文件保存到磁盘,然后再次拾取

这段经历并不那么愉快,但最终还是奏效了。
幸运的是,这项工作一天只运行一次,所以性能一点也不重要,我希望找到一个更好的解决方案,但我找不到比这更好的解决方案。幸运的是,它可以工作,而且100%的时间都可以工作,所以我想我可以在今晚签入并推送!

你试过订阅
WebCore.Download
?我没有用过它以前是s Awesomium产品,但是有没有任何原因可以解释为什么您不使用传统的
内容处置方式来执行此操作?webcore.download是我的第一次尝试:但问题是事件从未触发:正如我所说,当我下载此文件时,web.core中的任何事件都不会触发。关于内容处置:我没有我试了一下,因为我发现了这个,然后我认为它不受支持。也许最好是更深入地调查,因为我已经没有想法了