error CS0021: Невозможно применить индексирование с [] к выражению типа Объект ` '

Первая строка не могу спокойно индексировать , хотя перед результатом в функции я могу указать респонс

        async void sheck()
    {


        object test = vk_api("users.get", $"user_ids={user_id}");


        await DisplayAlert("Тест", test["responce"].toString(), "Окей"); //здесь ошибка на test["response"] - error CS0021: Невозможно применить индексирование с [] к выражению типа Объект

    }

Функция vk_api с резульатом:

        async Task<object> vk_api(string method, string paramtr)
    {
        HttpClient Client = new HttpClient();

        Client.DefaultRequestHeaders.UserAgent.ParseAdd("VKAndroidApp/5.47.1-4248 (Android 9; SDK 28; armeabi-v7a; Android; ru; 1920x1080)");

        var values = new Dictionary<string, string>
            {
            { "access_token", (string)access_token },
            };

        var content = new FormUrlEncodedContent(values);

        //https://api.vk.com/method/users.get?user_ids=1&v=5.131&access_token=token

        var response = await Client.PostAsync("https://api.vk.com/method/" + method + "?" + paramtr + "&v=5.131", content);


        JObject result = JObject.Parse(await response.Content.ReadAsStringAsync());

        result["response"]; // Вот здесь  индексирование работает

        return result;
    }

Ответы (1 шт):

Автор решения: aepot

Во-первых, используйте HttpClient правильно

readonly HttpClient client = new HttpClient();

public MyClass() // конструктор
{
    // это вообще точно нужно?
    client.DefaultRequestHeaders.UserAgent.ParseAdd("VKAndroidApp/5.47.1-4248 (Android 9; SDK 28; armeabi-v7a; Android; ru; 1920x1080)");
}

async Task<JObject> VkApiRequestAsync(string method, string parameter)
{
    var values = new Dictionary<string, string>
    {
        ["access_token"] = (string)access_token
    };

    using var content = new FormUrlEncodedContent(values);
    using var response = await client.PostAsync("https://api.vk.com/method/" + method + "?" + parameter + "&v=5.131", content);

    return JObject.Parse(await response.Content.ReadAsStringAsync());
}

Во-вторых, намудрили с типами

async Task CheckAsync()
{
    JObject test = await VkApiRequestAsync("users.get", $"user_ids={user_id}");
    await DisplayAlert("Тест", test["response"].ToString(), "Окей");
}

Вызывать так

await CheckAsync();
→ Ссылка