如何在ASP.Net 3.5中使用REST API?

时间:2010-11-29 06:08:53

标签: c# asp.net api rest

我已经获得了RazorGator REST API的一些基本文档,需要将它合并到ASP.NET 3.5站点中。我创建了我的类文件来调用包含我的WebRequest.Create(“URL TO API”)的API。然后,我如何使输出可用,以便其他页面可以使用它?也就是说,tickets.aspx页面需要获取此API调用的输出结果。我应该使用哪些结构使其在tickets.aspx中可用?

谢谢!

修改 这是我到目前为止编写的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Net;
using System.Text;

namespace SeatEater.Web.UI.search
{
public class RazorGatorService
{

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.razorgator.com/ticketservice/ticets.xml?blahblah") as HttpWebRequest ;
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    Stream receiveStream = response.GetResponseStream();
    StreamReader readStream = new StreamReader(receiveStream, encode);
    response.close();
    readStream.close();

}

}

我收到错误消息:

A field initializer cannot reference the nonstatic field, method, or property 'field'

在上面的代码块的第二行。我很擅长使用HttpWebRequest和HttpWebResponse。你能告诉我如何纠正我收到的错误信息吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

我会创建一个简单的类,例如“ RazorGatorResult.cs ”,它保留从API返回的不同信息。 (或者更具体地说,只有您需要的信息)。

然后,您可以在应用程序中创建“ RazorGatorService ”程序集,Web应用程序可以参考该程序集。

RazorGatorService ”将负责调用API,并将原始HTTP响应(无论是HTML,JSON,XML等)保存为强类型“ RazorGatorResult < / strong>“对象,可以由Web层使用。

然后任何页面都可以直接调用该服务:

using RazorGatorService; 

RazorGatorResult result = RazorGatorService.GetSomeFunkyStuff();

这有三个好处:

1 - 您可以从Web应用程序的任何位置调用API

2 - 实际实现(HTTP调用,反序列化)被抽象出来

3 - 您可以在单独的程序集中维护/微调代码,而不会影响您的Web层。