我已经获得了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。你能告诉我如何纠正我收到的错误信息吗?
谢谢!
答案 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层。