【发布时间】:2017-07-28 17:53:42
【问题描述】:
我正在尝试使用 C# WebClient 从以下 uri 获取 csv 文件。
var copUri ="http://obieebr.banrep.gov.co/analytics/saw.dll?Go&Path=%2fshared%2fSeries%20Estad%c3%adsticas_T%2f1.%20IBR%2f1.1.IBR_CSV_XML_ultimos_datos&download_type=csv&NQUser=publico&NQPassword=publico"
var client = new WebClient();
var content = client.DownloadString(copUri);
当我在浏览器中尝试时,我得到了 csv 文件,但上面的代码正在返回身份验证 html 文件。如何通过这个 html 响应来获取 csv 文件?
【问题讨论】:
-
您是否尝试过使用 WebClient.DownloadFile() 方法?
-
看起来在初始命中时,它设置了一些 cookie。您将需要使用可识别 cookie 的客户端,访问 URI,然后再次访问相同的 URI。只有第二次,它才会给你 CSV。
-
您正在从 Oracle BI 下载报告,该报告具有非常重的会话意识,并且就像 @Kyle 指出的那样,在第一个请求时设置了一些会话 cookie,例如
ORA_BIPS_LBINFO和ORA_BIPS_NQID。我对Oracle BI不熟悉,但也许你可以在stackoverflow.com/questions/tagged/obiee问这个问题。 -
尝试使用以下cookie-aware webclient (stackoverflow.com/questions/2825377/…),但问题依然存在..