首页 > 解决方案 > 如何使用 WebRequest 获取 SSRS 报告?

问题描述

从网络浏览器(Chrome)运行 url 时,我总是使用我的代码获取空的 XML 文件并获取填充的 XML 文件。两种情况下的 url 都是相同的(具有相同的参数)...字符串 day&month are = "05"&"09"

string period = "From="+day+"/"+month+"/2018%2007:00:00&To="+day+"/"+month+"/2018%2009:00:00";
string response = doRequest(@"http://localserver/ReportServer?%2FSpecial%2FReport&"+period+"&rs:Format=XML");

private string doRequest(string url_with_params){

 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url_with_params);
 request.UseDefaultCredentials = true;
 request.PreAuthenticate = true;
 request.Credentials =  new NetworkCredential("login", "password");

 using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
  {
   if (response.StatusCode == HttpStatusCode.OK)
        {
            string responseText ="";
            using(var reader =  new System.IO.StreamReader(response.GetResponseStream())){
                responseText = reader.ReadToEnd();
            };
            return responseText;
        }
        response.Close();
        return null;
  }
}

我运行代码的 XML 文件如下所示:

<?xml version="1.0" encoding="utf-8"?><Report xsi:schemaLocation="Special_x0020_Report http://localserver/ReportServer?%2FSpecial%2FReport&amp;rs%3AFormat=XML&amp;rc%3ASchema=True" Name="Special Report" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="Special_x0020_Report"><Tablix1 /></Report>  

从浏览器运行:

<?xml version="1.0" encoding="utf-8"?><Report xsi:schemaLocation="Special_x0020_Report http://localserver/ReportServer?%2FSpecial%2FReport&amp;rs%3AFormat=XML&amp;rc%3ASchema=True" Name="Special Report" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="Special_x0020_Report"><Tablix1 /><Details_Collection>

<Details Name="Single" Qty="1" FailureCode="@BLOCK"/></Details_Collection></Report>      

标签: c#reporting-servicesxmlhttprequesthttprequesthttpwebrequest

解决方案


推荐阅读