如何将其迁移到Web服务

时间:2012-07-12 21:00:04

标签: c# asp.net web-services

我真诚地请求您的耐心和理解。

以下代码的工作原理是提供一个方框和一个按钮。

该框包含一个网址,按钮只显示转换。

如果单击转换按钮,则会打开网址的内容并将其转换为pdf。

这很有效。

不幸的是,他们希望将其翻译为Web服务,以便其他应用程序可以通过提供2个输入参数,URL和文档名称来使用它来执行类似的任务。

我已经看过几个创建和使用Web服务的例子,虽然它们看起来相当简单,但编写代码的方式使得它很难翻译。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EO.Pdf;

public partial class HtmlToPdf : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnConvert_Click(object sender, EventArgs e)
    {
        //Create a PdfDocument object and convert
        //the Url into the PdfDocument object
        PdfDocument doc = new PdfDocument();
        HtmlToPdf.ConvertUrl(txtUrl.Text, doc);

        //Setup HttpResponse headers
        HttpResponse response = HttpContext.Current.Response;
        response.Clear();
        response.ClearHeaders();
        response.ContentType = "application/pdf";

        //Send the PdfDocument to the client
        doc.Save(response.OutputStream);

        Response.End();
    }
}

如果你能够提供帮助,我真的很感激。

1 个答案:

答案 0 :(得分:1)

最基本的网络服务形式是使用HTTP handler

public class HtmlToPdfHandler : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        string url = context.Request["url"];
        string documentName = context.Request["name"];

        PdfDocument doc = new PdfDocument();
        HtmlToPdf.ConvertUrl(url, doc);
        context.Response.ContentType = "application/pdf";
        doc.Save(context.Response.OutputStream);
    }

    public bool IsReusable
    {
        get { return false; }
    }
}

然后:http://example.com/HtmlToPdfHandler.ashx?url=someurl&name=some_doc_name

要获得更多高级服务,您可以查看WCF或即将到来的Web API