C# 使用WebClient而不是HttpClient

C# 使用WebClient而不是HttpClient,c#,model-view-controller,httpclient,webclient,C#,Model View Controller,Httpclient,Webclient,我有两个版本为4.0和4.5的项目,我想对这两个版本都使用以下功能,但不幸的是,HttpClient仅适用于4.5 public async Task<SlackTest> GetAccessToken(string clientId, string clientSecret, string code) { using (var client = new HttpClient()) { s

我有两个版本为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;
            }
        }
但是intellisense没有给我使用DownloadDataTaskAsync的选项。
我们不能将webclient用于任务和等待吗?

您不能使用httpclient,因为您缺少nugget软件包


您希望有人为您编写代码吗?对于堆栈溢出,这不是一件好事。如果你不知道自己在做什么,听起来更像是想雇佣一名承包商。如果你想在这里提出一个有效的问题,那么试着去做你想做的事情,只有当它不起作用时才在这里发布,确保提供一个。对于示例代码,CodeProject可能会有帮助,或者谷歌搜索。因此,请阅读,看看这里要问什么样的问题。哦,对不起,我已经添加了我正在做的示例。或者想做什么。@D-Johnashani请复习。建议某人使用
async void
是一个非常糟糕的主意。@D-johnAnshani公认的答案很糟糕。请查看我提供给您的链接。我无法将http客户端用于其他项目,因为它是版本4.0,将其更改为版本4.5是一个较长的过程。是什么阻止了您下载nugget?在不升级的情况下下载版本4,0的nugget。我这样做了,但它给我一个版本冲突的错误从您的项目中删除System.net.http在4.0项目中引用并添加nuget。在代码中,确保“使用System.Net.Http”也做到了这一点。也不行。我的前辈发现的唯一解决方案是使用WebClient。
string url = ApiUrl + "/oauth.access?client_id=" + clientId + "&client_secret=" + clientSecret + "&code=" + code;
                var response = await client.DownloadDataAsync(url);