在C#asp.net中使用rest请求运行jasper报告

时间:2014-04-21 19:24:51

标签: c# asp.net rest report jasperserver

我一直在努力让jasper报告与我的.net网站集成。我尝试了几种方法,包括肥皂和休息服务以及另一篇文章(http://freeze.ro/?q=node/7)中建议的自定义库。我知道我很接近,但我对此很新,我仍在努力了解它是如何运作的。大多数人建议使用rest方法,我在这里找到了一个很好的例子,但我仍然收到错误Bad Request。这是我的休息请求代码。

             WebClient httpClient = new WebClient();
        httpClient.Credentials = new NetworkCredential("username", "password");
        httpClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

        // Build resourceDescriptor
        string requestXml;
        requestXml = "<resourceDescriptor name=\"Invoice\" wsType=\"reportUnit\" uriString=\"/reports/Nosreports/Invoice\"";
        requestXml += " isNew=\"false\">";

        requestXml += "   <parameter name=\"invoiceid\">1016242</parameter>n";
        requestXml += "</resourceDescriptor>";

        // Send PUT, the requestAllResult contains the above <report>...

        string requestAllResult = httpClient.UploadString("http://SRV9:8080/jasperserver/rest/report/reports/NOSreports/Invoice?RUN_OUTPUT_FORMAT=PDF", "PUT", requestXml);


        // Extract uuid and file
        System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
        doc.LoadXml(requestAllResult);
        XmlNode node = doc.DocumentElement.SelectSingleNode("uuid");
        string uuid = node.InnerText;

        //Build GET URL
        string reportUrl = "http://SRV9:8080/jasperserver/rest/resources/report/";
        reportUrl += uuid;
        reportUrl += "?file=report";

        // Get report
        string report;
        report = httpClient.DownloadString(reportUrl);

我非常感谢任何帮助,我已阅读并准备放弃,我只是讨厌在我的项目中尝试切换到新的报告服务。

2 个答案:

答案 0 :(得分:0)

谢谢Ovan肯定会帮助我。不幸的是我们已经切换到Crystal Reports,因此我不再需要它。

如果有人遇到此问题,请查看Ovan发布的此链接。

Get report from jasperserver using REST webservice and asp.net C#

答案 1 :(得分:0)

我通过rest v2成功调用了Jasper报告。 请将我的脚本视为附加的URL。 希望它对你有所帮助。

Asp.net MVC call Jasper report via REST v2 service