【问题标题】:How to consume an HTTP webservice in Asp.net?如何在 Asp.net 中使用 HTTP 网络服务?
【发布时间】:2010-03-30 08:16:44
【问题描述】:

我想根据 http url 返回的结果生成 html 内容。

http://www.zillow.com/webservice/GetDeepSearchResults.htm?zws-id=X1-ZWz1c239bjatxn_5taq0&address=2114+Bigelow+Ave&citystatezip=Seattle%2C+WA

此页面将为您提供一些 XML 结果。我想转换为使用该 XML 来生成 HTML。我不知道从哪里开始?有人会为 asp.net 提供任何指南或示例代码吗?

详情:http://www.zillow.com/howto/api/GetDeepSearchResults.htm

【问题讨论】:

  • 这个问题是“太宽泛”的本质:请编辑问题,将其限制为一个具体问题,并提供足够详细的信息来确定适当的答案。

标签: c# asp.net web-services zillow


【解决方案1】:

要获取数据,您可以使用 HttpWebRequest 类,这是我必须提供的一个示例,但对于您的需求,它可能有点过头了(您需要确保您做的事情是正确的 - 我怀疑上述情况成为 GET 而不是 POST)。

Uri baseUri = new Uri(this.RemoteServer);

HttpWebRequest rq = (HttpWebRequest)HttpWebRequest.Create(new Uri(baseUri, action));
rq.Method = "POST";
rq.ContentType = "application/x-www-form-urlencoded";

rq.Accept = "text/xml";
rq.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

Encoding encoding = Encoding.GetEncoding("UTF-8");
byte[] chars = encoding.GetBytes(body);
rq.ContentLength = chars.Length;

using (Stream stream = rq.GetRequestStream())
{
    stream.Write(chars, 0, chars.Length);
    stream.Close();
}

XDocument doc;
WebResponse rs = rq.GetResponse();
using (Stream stream = rs.GetResponseStream())
{
    using (XmlTextReader tr = new XmlTextReader(stream))
    {
        doc = XDocument.Load(tr);
        responseXml = doc.Root;
    }

    if (responseXml == null)
    {
        throw new Exception("No response");
    }
 }

 return responseXml;

一旦你得到数据,你需要渲染 HTML,有很多选择 - 如果你只是想用最少的进一步处理将你得到的东西转换成 HTML,那么你可以使用 XSLT - 这本身就是一个问题。如果你需要用它做一些事情,那么问题就太模糊了,你需要更具体。

【讨论】:

    【解决方案2】:

    创建一个 xsl 样式表,并将样式表元素从页面注入到生成的 xml 中

    【讨论】:

      猜你喜欢
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 2015-03-31
      相关资源
      最近更新 更多