在C#中,你可以使用HttpClient
类来实现AJAX异步请求。以下是一个简单的示例:
System.Net.Http
NuGet包。如果没有,请在项目中运行以下命令来安装:Install-Package System.Net.Http
AjaxHelper.cs
,并在其中添加以下代码:using System;
using System.Net.Http;
using System.Threading.Tasks;
public static class AjaxHelper
{
private static readonly HttpClient httpClient = new HttpClient();
public static async Task<string> GetAsync(string requestUri)
{
HttpResponseMessage response = await httpClient.GetAsync(requestUri);
if (response.IsSuccessStatusCode)
{
return await response.Content.ReadAsStringAsync();
}
else
{
throw new Exception($"Error: {response.StatusCode}");
}
}
public static async Task<T> GetAsync<T>(string requestUri, Func<string, T> deserializer)
{
string jsonResponse = await GetAsync(requestUri);
return deserializer(jsonResponse);
}
}
这个类提供了两个静态方法:GetAsync
用于执行GET请求,GetAsync<T>
用于执行GET请求并将响应内容反序列化为指定的类型。
AjaxHelper
类来执行异步请求。例如,在一个名为MainClass.cs
的类中:using System;
using System.Threading.Tasks;
class MainClass
{
static async Task Main(string[] args)
{
string requestUri = "https://api.example.com/data";
// 使用GetAsync方法获取JSON字符串
string jsonResponse = await AjaxHelper.GetAsync(requestUri);
Console.WriteLine("JSON Response: " + jsonResponse);
// 使用GetAsync<T>方法获取指定类型的对象
MyData data = await AjaxHelper.GetAsync<MyData>(requestUri, json => JsonConvert.DeserializeObject<MyData>(json));
Console.WriteLine("Deserialized Data: " + data);
}
}
请注意,你需要将MyData
替换为你要反序列化的实际类型,并确保已经安装了Newtonsoft.Json
NuGet包来处理JSON序列化和反序列化。如果没有,请运行以下命令来安装:
Install-Package Newtonsoft.Json
现在,当你运行MainClass
时,它将执行异步GET请求,并在控制台中显示JSON响应和反序列化后的对象。