Используйте WebClient вместо HttpClient - PullRequest
0 голосов
/ 03 июля 2018

У меня есть два проекта с версиями 4.0 и 4.5, и я хотел использовать следующую функцию для них обоих, но, к сожалению, HttpClient доступен только для 4.5

public async Task<SlackTest> GetAccessToken(string clientId, string clientSecret, string code)
        {
            using (var client = new HttpClient())
            {
                string url = ApiUrl + "/oauth.access?client_id=" + clientId + "&client_secret=" + clientSecret + "&code=" + code;
                HttpResponseMessage response = await client.GetAsync(url);
                string content = await response.Content.ReadAsStringAsync();
                SlackTest slackTest = JsonConvert.DeserializeObject<SlackTest>(content);
                string accessToken = slackTest.AccessToken;
                string urlUserIdentity = "https://slack.com/api/users.identity?token=" + accessToken;
                var responseUser = await client.GetAsync(urlUserIdentity);
                string contentUserIdentity = await responseUser.Content.ReadAsStringAsync();
                SlackTest2 slack = JsonConvert.DeserializeObject<SlackTest2>(contentUserIdentity);             System.IO.File.WriteAllText(@"C:\Users\Srishti\Desktop\AccessTokenSlack.txt", accessToken);
                return slackTest;
            }
        }

Так что теперь мне нужно сделать то же самое, используя WebClient, который я никогда не использовал. Может ли кто-нибудь помочь мне с этим и, вероятно, дать понять, как это сделать.

Я начал как под:

string url = ApiUrl + "/oauth.access?client_id=" + clientId + "&client_secret=" + clientSecret + "&code=" + code;
                var response = await client.DownloadDataAsync(url);

Но intellisense не дает мне возможности использовать DownloadDataTaskAsync. Разве мы не можем использовать веб-клиента с Задачами и ожидаем?

1 Ответ

0 голосов
/ 03 июля 2018

Вы не можете использовать httpclient, потому что у вас отсутствует пакет слепков

https://www.nuget.org/packages/Microsoft.Net.Http/

...