В приложении есть небольшие дыри, когда URL может быть длинной и из-за ее размера => запрос не выполняется
Изменял все Get на Post методы:
public async Task<T> GetAsync<T>(string url)
{
var requestMessage = await this.GetHttpMessageRequestWithToken(url, HttpMethod.Get, null);
var response = await InternalHttpClient.SendAsync(requestMessage);
return await HandleResponse<T>(response, url);
}
public async Task<Res> PostAsync<Req, Res>(string url, Req obj)
{
var json = JsonConvert.SerializeObject(obj);
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
var requestMessage = await this.GetHttpMessageRequestWithToken(url, HttpMethod.Post, stringContent);
var response = await InternalHttpClient.SendAsync(requestMessage);
return await HandleResponse<Res>(response, url);
}
К примеру:
var getInfoByIdUrl = BaseUrl + getUrlSegment + "?" + string.Join("&", userIds.Distinct().Select(userId => "userIds=" + userId));
Изменял на:
var getInfoByIdUrl = BaseUrl + getUrlSegment ;
var request = new RequestUserInfoByUsers() { UserIds = userIds.ToArray() };
var userInfos = await DataProvider
.PostAsync<RequestUserInfoByUsers, Response<List<GetUserInfoByIdResponse>>>(
getInfoByIdUrl ,
request);
Случайно, оказалось, что в приложении так же существует Delete:
var deleteUrl = this.BaseUrl + this.NextUrl + "?" + string.Join("&", removedBookingsIds.Select(bookingId => "bookingIds=" + bookingId));
Сработает ли такой же подход для Delete:
public async Task<T> DeleteAsync<T>(string url)
{
var requestMessage = await this.GetHttpMessageRequestWithToken(url, HttpMethod.Delete, null);
var response = await InternalHttpClient.SendAsync(requestMessage);
return await HandleResponse<T>(response, url);
}
И как он должен будет выглядит. Делай точь в точь как PostAsync, или же такой подход уже не возможен? Есть ли какие-то другие варианты?