C# Ошибка вызова asyn c Задача с аргументами из Main - PullRequest
0 голосов
/ 07 января 2020

Это мой метод, asyn c HTTP POST:

public async Task CreateConsentAsync(Uri HTTPaddress, cHeaders cconsHeaders, cBody ccons, HttpMethod Method)
{
    try
    {
        HttpClient client = new HttpClient();
        System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true);

        using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, HTTPaddress))
        {
            client.BaseAddress = HTTPaddress;
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("*/*"));

            client.DefaultRequestHeaders.Add("Connection", "keep-alive");
            client.DefaultRequestHeaders.Add("Cache-Control", "no-cache");
            client.DefaultRequestHeaders.Add("SomeHeader", cconsHeaders.SomeHeader);
            //etc..

            request.Content = new StringContent(JsonConvert.SerializeObject(ccons, Formatting.Indented), utf8, "application/json");

            using (HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false))
            {
                Int32 code = (Int32)response.StatusCode;
                Console.ReadLine();
            }
        }
    }
    catch (Exception e)
    {
        Console.WriteLine("Error in " + e.TargetSite + "\r\n" + e.Message); Console.ReadLine();
    }
}

Когда я пытаюсь вызвать его из Main, правильно указав все аргументы, например:

CreateConsentAsync(NewConsent.BaseURL, NewConsent.Headers, NewConsent.Body, HttpMethod.Post).GetAwaiter().GetResult();

Я получаю сообщение об ошибке:

Требуется объект для нестатического c поля, метода или свойства 'Program.CreateConsentAsyn c (Uri, cHeaders, cBody, HttpMethod)'

Буду признателен за любые идеи и помощь ..

1 Ответ

1 голос
/ 07 января 2020

Метод CreateConsentAsync является методом экземпляра и, следовательно, не является методом c. Если вы хотите назвать это сообщение об ошибке, которым вы поделились, вы должны пометить его как stati c one:

public static async Task CreateConsentAsync
...