尝试在不使用 SOAP 的情况下以轻量级方式将字节数组传输到 ASP.NET 2.0 应用程序。我决定使用通用 HTTP 处理程序 (.ashx),将 HTTP 请求正文解释为 Base64 字符串,将其解码为字节数组并保存到磁盘。
<%@ WebHandler Language="C#" Class="PdfPrintService" %>
using System;
using System.Web;
public class PdfPrintService : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string body;
using (System.IO.StreamReader reader =
new System.IO.StreamReader(context.Request.InputStream))
{
body = reader.ReadToEnd();
}
byte[] bytes = System.Convert.FromBase64String(body);
String filePath = System.IO.Path.GetTempFileName() + ".pdf";
System.IO.File.WriteAllBytes(filePath, bytes);
// Print file.
XyzCompany.Printing.PrintUtility.PrintFile(filePath);
}
public bool IsReusable {
get {
return false;
}
}
}
客户端应用程序(在我的例子中是一个 iOS 应用程序)只需将字节编码为 Base64 并将它们发布到这个通用处理程序 (ashx) 的 URL。
我想有一种更好、更正统的方法可以做到这一点。任何想法表示赞赏!