C# WCF HTTP获取api
在我的.NET项目中,我必须使用HTTP GET请求从API获取我所在城市的天气信息。由于我的JavaScript背景,我想“好吧,我只需要像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
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。从您的描述中不清楚您在这里的总体需求。。