CloudBuilder/CloudBuilder.Core/Request/IServiceRequest.cs
owenchen 1c0c83af5f ow
2026-05-12 10:09:31 +08:00

47 lines
1.5 KiB
C#

using Azure.Core;
using CloudBuilder.Core.DependencyInjection.Request;
using CloudBuilder.Core.Policy;
using CloudBuilder.Core.Service;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
namespace CloudBuilder.Core.Request
{
public interface IServiceRequest : IRequest
{
void SetToken(string token);
void SetCulture(string culture);
void SetToken();
Task<R> GetAsync<R>(string api);
Task<R> GetWithQueryAsync<R>(string api, Dictionary<string, string> queryParams);
Task<R> GetWithHeadersAsync<R>(string api, Dictionary<string, string> headers);
Task<R> GetWithHeadersAndQueryAsync<R>(string api, Dictionary<string, string> headers, Dictionary<string, string> queryParams);
Task<R> PostAsJsonAsync<T, R>(string api, T data);
Task<R> PostAsJsonAsync<T, R>(string api, Dictionary<string, string> headers, T data);
Task<R> PostAsJsonAsync<R>(string api, Dictionary<string, string> headers);
Task<R> PostAsJsonAsync<R>(string api);
Task PostAsync(string api);
void DownloadFile(string api, string filePath, Action<long> progressCallback, Action<string> completedCallback);
Task<R> PostAsync<R>(string api, MultipartFormDataContent data);
void AddHeaders(string name, string? value);
void SetContext(IContext loginContext);
HttpClient GetHttpClient();
}
}