使用这样的代码下载:
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资源文件,请问这个问题要怎么处理?
因为没授权,服务器给你跳转到登录页面了。
这个是知道的。那个URL是另一个系统的开出来的,我不能做二开的,我的目的就是根据这个地址下载到文件,实际上在浏览器里面是可以弹出下载选项的,但是通过winform里面的代码来下载似乎不能保持登录状态,正在努力寻找突破口。。。555...
@鸢孑刀: 你先去调用它的登录页面(POST登录信息),然后保存这次请求返回的cookie信息等,然后再去请求pdf的地址,这次请求的时候记得带上第一次请求返回回来的cookie信息。
先登录,然后保持登录状态.再去请求文件
我不知道怎样保持这个登录状态,请求的响应地址是http://xxx.x.xxx.xxx/softoon/Workflow/xzsfw /wf0001.nsf/8702B1CB527EAC5448257C62002ABAD5/$file/fileName.pdf,但是这个地址访问 时会被阻挡在登录页面。
@鸢孑刀: 登录状态你只要把cookie保存起来就是登录状态保持了
先发个登录请求到登录页面,然后看这个网站是怎么验证登录状态.把验证需要的东西保存起来.
放到下次请求里.然后再去请求文件就行了.一般只要别