【问题标题】:How to utilize a REST API in ASP.Net 3.5?如何在 ASP.Net 3.5 中使用 REST API?
【发布时间】:2010-11-29 06:08:52
【问题描述】:

我已获得 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 非常陌生。你能告诉我如何纠正我收到的错误消息吗?

谢谢!

【问题讨论】:

    标签: c# asp.net api rest


    【解决方案1】:

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

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

    RazorGatorService”将负责调用 API,并将原始 HTTP 响应(无论是 HTML、JSON、XML 等)混合为强类型的“RazorGatorResult" 对象,可供网络层使用。

    然后任何页面都可以通过该服务简单地调用:

    using RazorGatorService; 
    
    RazorGatorResult result = RazorGatorService.GetSomeFunkyStuff();
    

    这有 3 个好处:

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

    2 - 实际实现(HTTP 调用、反序列化)被抽象掉

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

    【讨论】:

    • 当您说将原始 HTTP 响应水合为强类型 RazorGatorResult 时,我是否会创建一个数据表来保存从 API 返回的 XML?或者,是否有其他更合适的对象来存储 API 返回的 XML?
    • 我的意思是一个简单的类,带有 getter/setter - 就像 POCO。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 2019-02-17
    相关资源
    最近更新 更多