using System;
using System.Net;
using System.IO;
public class WeatherAPI
{
private const string apiKey = "YOUR_API_KEY"; // replace with your weather API key
public string GetWeather(string city)
{
string apiUrl = "https://api.openweathermap.org/data/2.5/weather?q=" + city + "&appid=" + apiKey;
WebClient client = new WebClient();
Stream data = client.OpenRead(apiUrl);
StreamReader reader = new StreamReader(data);
string response = reader.ReadToEnd();
data.Close();
reader.Close();
return response;
}
}
public class Program
{
public static void Main()
{
WeatherAPI weatherApi = new WeatherAPI();
string city = "Nanning"; // specify the city for weather information
string weatherData = weatherApi.GetWeather(city);
Console.WriteLine(weatherData);
}
}
请注意,此代码仅用于演示目的。要使此代码正常工作,您需要将YOUR_API_KEY
替换为您从天气API提供商那里获得的实际API密钥。此代码使用System.Net
命名空间中的WebClient
类来执行API调用,并返回API的JSON响应。您可以根据您使用的具体天气API的文档和要求进行必要的调整。
以下是一个使用ASP.NET调用天气API接口的示例代码:
using System;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
public class WeatherService
{
private static readonly HttpClient client = new HttpClient();
public async Task<WeatherData> GetWeatherData(string city)
{
string apiKey = "YOUR_API_KEY";
string apiUrl = $"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={apiKey}";
HttpResponseMessage response = await client.GetAsync(apiUrl);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
WeatherData weatherData = JsonConvert.DeserializeObject<WeatherData>(responseBody);
return weatherData;
}
}
public class WeatherData
{
public MainData Main { get; set; }
}
public class MainData
{
public double Temp { get; set; }
}
在上面的示例中,我们定义了一个WeatherService类,该类包含一个GetWeatherData方法用于获取指定城市的天气数据。在GetWeatherData方法中,我们首先构建API的URL,并使用HttpClient来发送GET请求获取API的响应。然后将响应的JSON数据反序列化为WeatherData对象,并返回该对象。
请注意,你需要替换代码中的YOUR_API_KEY为你自己的天气API密钥。另外,你还需要安装Newtonsoft.Json包来进行JSON的序列化和反序列化操作。
希望对你有帮助!如果有任何疑问,请随时向我提问。
发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/156463.html