C# WCF HTTP获取api

C# WCF HTTP获取api,c#,.net,wcf,rest,C#,.net,Wcf,Rest,在我的.NET项目中,我必须使用HTTP GET请求从API获取我所在城市的天气信息。由于我的JavaScript背景,我想“好吧,我只需要像app.get(url,body)”这样的东西,所以我从这样的东西开始: using (var client = new WebClient()) { var responseString = client.DownloadString("http://www.webservicex.net/glob

在我的.NET项目中,我必须使用HTTP GET请求从API获取我所在城市的天气信息。由于我的JavaScript背景,我想“好吧,我只需要像
app.get(url,body)
”这样的东西,所以我从这样的东西开始:

        using (var client = new WebClient())
        {
            var responseString = client.DownloadString("http://www.webservicex.net/globalweather.asmx/GetWeather?CityName=" + city + "&CountryName=" + country);
            string xmlString = DecodeXml(responseString);

            return xmlString;
        }
var city = "Dublin";
var country = "Ireland";

WebRequest request = WebRequest.Create(
    "http://www.webservicex.net/globalweather.asmx/GetWeather?CityName=" + 
    city + 
    "&CountryName=" + country);

request.Credentials = CredentialCache.DefaultCredentials;

WebResponse response = request.GetResponse();

Console.WriteLine(((HttpWebResponse)response).StatusDescription);

Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();

Console.WriteLine(responseFromServer);

reader.Close();
response.Close();
Console.ReadLine();
不幸的是,我不得不使用WCF来获取数据。我在网上搜索了一些教程,但我找不到任何关于从外部来源获取数据的内容,只是创建了自己的API


我不是以英语为母语的人,所以我可能无法用语言来寻找解决方案,但如果您能给我一些建议,那就太棒了。

假设您使用的是Visual Studio。添加服务引用,然后在地址中键入“”,然后点击Go。它会自动生成终点供您使用

那么代码是这样的:

        ServiceReference1.GlobalWeatherSoapClient client = new ServiceReference1.GlobalWeatherSoapClient("GlobalWeatherSoap");
        string cities = client.GetCitiesByCountry("Hong Kong");

如果只想使用HTTP GET,可以执行以下操作:

        using (var client = new WebClient())
        {
            var responseString = client.DownloadString("http://www.webservicex.net/globalweather.asmx/GetWeather?CityName=" + city + "&CountryName=" + country);
            string xmlString = DecodeXml(responseString);

            return xmlString;
        }
var city = "Dublin";
var country = "Ireland";

WebRequest request = WebRequest.Create(
    "http://www.webservicex.net/globalweather.asmx/GetWeather?CityName=" + 
    city + 
    "&CountryName=" + country);

request.Credentials = CredentialCache.DefaultCredentials;

WebResponse response = request.GetResponse();

Console.WriteLine(((HttpWebResponse)response).StatusDescription);

Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();

Console.WriteLine(responseFromServer);

reader.Close();
response.Close();
Console.ReadLine();
请注意,我没有在这里对响应进行HTML解码,您只需使用HttpUtility.HtmlDecode即可

此外,还需要包括以下using语句:

using System.IO;
using System.Net;

如何调用特定的API取决于您正在使用的天气API。从您的描述中不清楚您在这里的总体需求。。