此示例项目显示如何将报表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;
}
下面的屏幕截图中,您可以看到示例代码的结果。