如何在ASP.Net 3.5中使用REST API?
问题描述:
我已经给出了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。你能否告诉我如何纠正我收到的错误信息?
谢谢!
答
我会创建一个简单的类,例如“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 - 您可以在单独的程序集中维护/微调代码,而不会影响您的网络层。
当你说原始HTTP响应补充到一个强类型RazorGatorResult时,我会创建一个数据表来保存从API返回的XML吗?或者,是否有另一个更适合的对象来存储由API返回的XML? – SidC 2010-11-29 18:47:45