首页 新闻 会员 周边 捐助

winform程序要下载一个资源,遇到问题求解。

0
悬赏园豆:5 [已解决问题] 解决于 2014-04-04 15:38

使用这样的代码下载:

   Uri downloadURL = new Uri(@"http://xxx.x.xxx.xxx/names.nsf?Login&username=name&password=pwd@yt&RedirectTo=http://xxx.x.xxx.xxx/softoon/Workflow/xzsfw/wf0001.nsf/8702B1CB527EAC5448257C62002ABAD5/$file/fileName.pdf");                  
                    System.Net.WebClient webClient = new System.Net.WebClient();
                    System.Net.WebRequest myre = System.Net.WebRequest.Create(downloadURL);          
                    webClient.DownloadFile(downloadURL, @"d:\test\xiaodao.pdf")

从URL可以看到,地址有一个验证,然后跳转的过程,在IE浏览器中是可以浏览到文件的,通过程序下载到的文件是登录页的html源文件而不是真正的pdf资源文件,请问这个问题要怎么处理?

街西的主页 街西 | 菜鸟二级 | 园豆:201
提问于:2014-03-27 10:32
< >
分享
最佳答案
0

因为没授权,服务器给你跳转到登录页面了。

收获园豆:5
幻天芒 | 高人七级 |园豆:37205 | 2014-03-27 11:13

这个是知道的。那个URL是另一个系统的开出来的,我不能做二开的,我的目的就是根据这个地址下载到文件,实际上在浏览器里面是可以弹出下载选项的,但是通过winform里面的代码来下载似乎不能保持登录状态,正在努力寻找突破口。。。555...

街西 | 园豆:201 (菜鸟二级) | 2014-03-27 11:18

@鸢孑刀: 你先去调用它的登录页面(POST登录信息),然后保存这次请求返回的cookie信息等,然后再去请求pdf的地址,这次请求的时候记得带上第一次请求返回回来的cookie信息。

幻天芒 | 园豆:37205 (高人七级) | 2014-03-27 12:17
其他回答(1)
0

先登录,然后保持登录状态.再去请求文件

吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-27 10:36

我不知道怎样保持这个登录状态,请求的响应地址是http://xxx.x.xxx.xxx/softoon/Workflow/xzsfw /wf0001.nsf/8702B1CB527EAC5448257C62002ABAD5/$file/fileName.pdf,但是这个地址访问 时会被阻挡在登录页面。

支持(0) 反对(0) 街西 | 园豆:201 (菜鸟二级) | 2014-03-27 11:00

@鸢孑刀: 登录状态你只要把cookie保存起来就是登录状态保持了

先发个登录请求到登录页面,然后看这个网站是怎么验证登录状态.把验证需要的东西保存起来.

放到下次请求里.然后再去请求文件就行了.一般只要别

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-27 11:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册