123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net.Http;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Input;
- using UpgradePackageUploadTool.Models;
- namespace UpgradePackageUploadTool.Utilties
- {
- public class ProxyManager
- {
- private readonly string _baseUrl;
- private readonly HttpClient _httpClient;
- public ProxyManager(string baseUrl)
- {
- _baseUrl = baseUrl;
- _httpClient = new HttpClient
- {
- Timeout = TimeSpan.FromSeconds(10)
- };
- }
- public async Task<TResult> PostAsync<TRequest, TResult>(string method, TRequest obj)
- {
- try
- {
- var methodParts = method.Trim('/').Split('/');
- string requestUrl = $"{_baseUrl.Trim('/')}/{methodParts[0]}";
- var payload = $"{{\"jsonrpc\":\"2.0\",\"method\":\"{methodParts[1]}\",\"params\":{Newtonsoft.Json.JsonConvert.SerializeObject(obj)},\"id\":\"{Guid.NewGuid().ToString("N")}\"}}";
- HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");
- HttpResponseMessage response = await _httpClient.PostAsync(requestUrl, content);
- response.EnsureSuccessStatusCode();
- var resultContent = await response.Content.ReadAsStringAsync();
- var result = Newtonsoft.Json.JsonConvert.DeserializeObject<TResult>(resultContent);
- return result;
- }
- catch (Exception)
- {
-
- }
- return default;
- }
- }
- }
|