问题描述
有一网站,点击导出按钮,就会导出一excel文件现在winform中用HttpWebRequest模拟下载,怎么判断文件的物理地址下载,只从返回的里面找到文件名,以下是网站导出抓包-------------------------------------------------------------------------------------------------------------------------------------------------------------请求URL:http://xxxxxxxx.xxx.cn/command/disxpatcher/com.inspur.mems.comm.cmd.Dataset2ExcelCommand请求方法:POST状态码:200/OK-请求标头Accept:image/gif,image/jpeg,image/pjpeg,application/x-ms-application,application/xaml+xml,application/x-ms-xbap,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/*Accept-Encoding:gzip,deflateAccept-Language:zh-Hans-CN,zh-Hans;q=0.5Cache-Control:no-cacheConnection:Keep-AliveContent-Length:1013Content-Type:application/x-www-form-urlencodedCookie:kgFfW3pPh1qlcJFz2cb18zFlJt4XcQpYdMz7VC8gS9HtpTqpkCFgDNT:1Host:xxxxxxxx.xxx.cnReferer:http://xxxxxxxx.xxx.cn/jsp/mems/xsxxgl/xmcgl/xmcgl.jspUser-Agent:Mozilla/4.0(compatible;MSIE7.0;WindowsNT10.0;Trident/8.0;.NET4.0C;.NET4.0E;.NETCLR2.0.50727;.NETCLR3.0.30729;.NETCLR3.5.30729;SLCC2;MediaCenterPC6.0)以下是响应标头----------------------------------------------------------------------------------------------------------------------------Content-Disposition:attachment;filename="%e7%94%a8%e6%88%b7%e8%8a%b1%e5%90%8d%e5%86%8c.xls"Content-Type:application/octet-stream;charset=UTF-8Date:Mon,21Dec201502:06:08GMTTransfer-Encoding:chunked现在怎么要在winform中模拟下载,应怎么作,是不是要判断文件在网站的物理地址,怎么判断求助大神
解决方案
解决方案二:
不需要,别人都把文件随响应发送给你了,你直接从response里取就行了
解决方案三:
怎么取,没懂,响应里直摇头个文件名称呀
解决方案四:
引用1楼xdashewan的回复:
不需要,别人都把文件随响应发送给你了,你直接从response里取就行了
响应里只有文件名称,怎么取呢
解决方案五:
引用3楼rifleak47的回复:
响应里只有文件名称,怎么取呢
数据在响应头后面,也就是在响应的body里
解决方案六:
你抓到的页面是含有导出Excel按钮的页面,页面点击导出Excel是直接将页面里边的数据做成Excel然后保存。也就是说页面中有你要的数据。如果是数据直接从数据库拉的,那你GG了。因为数据不经过HTTP请求输出到页面,你也抓不到。
解决方案七:
引用5楼LoserOrLeader的回复:
你抓到的页面是含有导出Excel按钮的页面,页面点击导出Excel是直接将页面里边的数据做成Excel然后保存。也就是说页面中有你要的数据。如果是数据直接从数据库拉的,那你GG了。因为数据不经过HTTP请求输出到页面,你也抓不到。
应该在页面里没有,因为出现另存对话框保存后在浏览器下载列表中能看到进度。是不是从什么地方能看到真实的xls文件地址,不然浏览器怎么知道从哪里下载。
解决方案八:
你request这个文件,获得的response响应就含有文件的内容
解决方案九:
引用7楼JustinLiu27的回复:
你request这个文件,获得的response响应就含有文件的内容
不知道服务器上具体地址呀,
解决方案十:
哪位大神指点一下,救命
解决方案十一:
你必须知道,现在的网站设计,返回给你excel文件,并不代表服务器上一定存在这个文件,可能是服务器当时生成的内存流,然后传输过来,所以,你的想法是错误的,正确的做法,楼上的朋友们已经告诉你了
解决方案十二:
引用10楼LinuxCard的回复:
你必须知道,现在的网站设计,返回给你excel文件,并不代表服务器上一定存在这个文件,可能是服务器当时生成的内存流,然后传输过来,所以,你的想法是错误的,正确的做法,楼上的朋友们已经告诉你了
可是抓取的response的响应正文里面并没有呀,另存后会看到下载进度,只是抓不到,