我一直在努力让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);
我非常感谢任何帮助,我已阅读并准备放弃,我只是讨厌在我的项目中尝试切换到新的报告服务。
答案 0 :(得分:0)
谢谢Ovan肯定会帮助我。不幸的是我们已经切换到Crystal Reports,因此我不再需要它。
如果有人遇到此问题,请查看Ovan发布的此链接。
Get report from jasperserver using REST webservice and asp.net C#
答案 1 :(得分:0)
我通过rest v2成功调用了Jasper报告。 请将我的脚本视为附加的URL。 希望它对你有所帮助。