2010-11-29 109 views
0

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

谢谢!

编辑 下面是我迄今为止编写的代码:

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。你能否告诉我如何纠正我收到的错误信息?

谢谢!

回答

4

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

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

的“RazorGatorService”将负责调用API,以及水合所述经原始HTTP响应(无论是HTML,JSON,XML等)转换成一个强类型“RazorGatorResult”对象,其可以是由Web层使用。

那么任何页面可以通过该服务只需拨打:

using RazorGatorService; 

RazorGatorResult result = RazorGatorService.GetSomeFunkyStuff(); 

这有3个好处:

1 - 你可以从你的web应用程序

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

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

+0

当你说原始HTTP响应补充到一个强类型RazorGatorResult时,我会创建一个数据表来保存从API返回的XML吗?或者,是否有另一个更适合的对象来存储由API返回的XML? – SidC 2010-11-29 18:47:45