如何在asp.net中调用API URL

时间:2013-03-14 06:56:10

标签: c# asp.net web-services api http

我是asp.net的新手。我想调用api url,响应将以xml的形式返回。 我的问题是如何使用c#在我的asp.net代码中调用api url下面。

我正在使用vs 2008与3.5。

API网址:http://free.worldweatheronline.com/feed/weather.ashx?q=Mumbai&format=xml&num_of_days=2&key=apikey

任何人都可以帮助我。

2 个答案:

答案 0 :(得分:3)

以下代码的工作原理如何?还有更多API来实现这一点,我认为这是最简单的。

    WebClient webClient = new WebClient();
    string content = webClient.DownloadString("http://free.worldweatheronline.com/feed/weather.ashx?q=Mumbai&format=xml&num_of_days=2&key=api_key");
    XElement xml = XElement.Parse(content);
    using (MemoryStream ms = new MemoryStream())
    {
        xml.Save(ms);
        // use the ms here.
    }

或者只是用它来获取MemoryStream。

MemoryStream ms = new MemoryStream(webClient.DownloadData(uri));

答案 1 :(得分:1)

    //Load XML (replace "apikey" in the query string by your API key)
    XDocument xdoc = XDocument.Load(@"http://free.worldweatheronline.com/feed/weather.ashx?q=Mumbai&format=xml&num_of_days=2&key=apikey");

    //Run query with LINQ
        var query = from cc in xdoc.Descendants("current_condition")
                   select cc;

    //To convert memory stream .NET 3.5
    MemoryStream ms = new MemoryStream();
    XmlWriterSettings xws = new XmlWriterSettings();
    xws.OmitXmlDeclaration = true;
    xws.Indent = true;

    using (XmlWriter xw = XmlWriter.Create(ms, xws))
    {
        xdoc.WriteTo(xw);
    }

    // to convert Memory stream if you are using .NET 4+
   Stream stream = new MemoryStream();
   xdoc.Save(stream);