0

尝试在不使用 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。

我想有一种更好、更正统的方法可以做到这一点。任何想法表示赞赏!

4

1 回答 1

1

想到的是通过 HttpWebResponse 类之类的类处理的 POST 和 GET 请求。http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse%28v=vs.71%29.aspxx 您可以让您的 iOS 应用尝试 POST 到 ASP.NET 应用,然后设置为接收 POST 并将其解析为您将包含的字节数组。或多或少,这就是在 SOAP 之前通过 Internet 发送某些数据的方式。所有 SOAP 都是这些类型请求的模式。

于 2013-02-13T20:05:05.760 回答