在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響應和反序列化后的對象。