using System; using System.Net.Http; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; public class HttpClientHelper { private readonly HttpClient _httpClient; public HttpClientHelper() { _httpClient = new HttpClient(); // 设置一些默认的请求头 _httpClient.DefaultRequestHeaders.Add("User-Agent", "C#-HttpClientHelper"); } // 发送 GET 请求 public async Task GetAsync(string url) { try { HttpResponseMessage response = await _httpClient.GetAsync(url); response.EnsureSuccessStatusCode(); // 如果响应状态码不是 2xx,会抛出异常 return await response.Content.ReadAsStringAsync(); } catch (Exception ex) { // 处理异常 return $"Error: {ex.Message}"; } } // 发送 POST 请求 public async Task PostAsync(string url, object data) { try { var jsonContent = JsonConvert.SerializeObject(data); var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); HttpResponseMessage response = await _httpClient.PostAsync(url, content); response.EnsureSuccessStatusCode(); return await response.Content.ReadAsStringAsync(); } catch (Exception ex) { return $"Error: {ex.Message}"; } } // 发送 PUT 请求 public async Task PutAsync(string url, object data) { try { var jsonContent = JsonConvert.SerializeObject(data); var content = new StringContent(jsonContent, Encoding.UTF8, "application/json"); HttpResponseMessage response = await _httpClient.PutAsync(url, content); response.EnsureSuccessStatusCode(); return await response.Content.ReadAsStringAsync(); } catch (Exception ex) { return $"Error: {ex.Message}"; } } // 发送 DELETE 请求 public async Task DeleteAsync(string url) { try { HttpResponseMessage response = await _httpClient.DeleteAsync(url); response.EnsureSuccessStatusCode(); return await response.Content.ReadAsStringAsync(); } catch (Exception ex) { return $"Error: {ex.Message}"; } } }