Кажется, что это простая задача, но в сети много разных подходов к этому, так что лучше всего сделать простой HTTP POST из asp. net Page_Load (я нахожусь. net 4.7 )?
Многие ресурсы указывают на то, что HttpClient.PostAsyn c является наиболее легким подходом.
Однако приведенный здесь пример: https://docs.microsoft.com/en-us/aspnet/web-forms/overview/performance-and-caching/using-asynchronous-methods-in-aspnet-45 - использует WebClient.
Кроме того, оба этих подхода требуют установки Page Async = "true" на странице - я вижу противоречивую информацию о том, действительно ли это правильный подход.
Контекст: Моя страница похоже, что он проводит много времени в BLOCKED_TIME во время двух запросов, сделанных в Page_Load.
введите описание изображения здесь
Я подозреваю, что это связано с тем, как я в настоящее время делаю POST:
public string makePost(string parametersToPassOn, string command)
{
HttpContent c = new StringContent(parametersToPassOn, Encoding.UTF8, "application/json");
var t = Task.Run(() => fireRESTcall(new Uri(walletProxyURL + command), c));
t.Wait();
return t.Result;
}
static async Task<String> fireRESTcall(Uri u, HttpContent c)
{
var response = string.Empty;
using (var client = new HttpClient())
{
HttpRequestMessage request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = u,
Content = c
};
HttpResponseMessage result = await client.SendAsync(request);
if (result.IsSuccessStatusCode)
{
response = await result.Content.ReadAsStringAsync();
}
}
return response;
}
Любая помощь / мысли будут очень благодарны.