此示例项目显示如何将报表shapshot项目导出到硬盘驱动器上的文件。为此,您可以使用reportsnapshots命令组的export REST命令。作为参数,您需要使用导出参数指定文件项名称和导出集。这些参数可以作为请求发布数据传递。
var reportSnapshotKey = "897324aec5154c6fb102f47ff9267a42"; var url = "http://localhost:40010/1/reportsnapshots/" + reportSnapshotKey + "/export"; var requestRun = WebRequest.Create(url); requestRun.Method = "PUT"; requestRun.ContentType = "application/x-www-form-urlencoded"; requestRun.Headers.Add("x-sti-SessionKey", sessionKey); requestRun.Headers.Add("x-sti-DestinationItemKey", filefolderKey); var postData = "{ 'FileItemName':'ExportReport.pdf', 'ExportSet':" + "{ 'Ident':'Pdf', 'PageRange':{ },'EmbeddedFonts':false,'DitheringType':'None','PdfACompliance':true} }"; byte[] bytes = Encoding.GetEncoding(1251).GetBytes(postData); Request(requestRun, postData); var s = GetResponseResult(requestRun);
您可以使用以下方法将请求发送到服务器并获取请求的结果。
private void Request(WebRequest request, string postData) { var bytesCreateSnapshot = Encoding.GetEncoding(1251).GetBytes(postData); request.ContentLength = bytesCreateSnapshot.Length; using (Stream ws = request.GetRequestStream()) { ws.Write(bytesCreateSnapshot, 0, bytesCreateSnapshot.Length); ws.Flush(); } } private string GetResponseResult(WebRequest request) { var resp = request.GetResponse(); var respStream = resp.GetResponseStream(); if (respStream != null) { using (var stream1 = new StreamReader(respStream)) { var s = stream1.ReadToEnd(); return s; } } return null; }
下面的屏幕截图中,您可以看到示例代码的结果。