Asp.net 使用RESTAPI在azure devops项目中搜索代码

Asp.net 使用RESTAPI在azure devops项目中搜索代码,asp.net,asp.net-web-api,azure-devops,dotnet-httpclient,azure-devops-rest-api,Asp.net,Asp.net Web Api,Azure Devops,Dotnet Httpclient,Azure Devops Rest Api,我试图通过某个项目搜索代码,但没有得到正确的响应 这就是我所做的: public async void GetProjects() { try { var personalaccesstoken = "mypersonalPat"; using (HttpClient client = new HttpClient()) { client

我试图通过某个项目搜索代码,但没有得到正确的响应

这就是我所做的:

       public async void GetProjects()
    {
        try
        {
            var personalaccesstoken = "mypersonalPat";

            using (HttpClient client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Add(
                    new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                    Convert.ToBase64String(
                        System.Text.ASCIIEncoding.ASCII.GetBytes(
                            string.Format("{0}:{1}", "", personalaccesstoken))));

                var httpClient = new HttpClient();

                var list = new List<KeyValuePair<string, string>>();
                list.Add(new KeyValuePair<string, string>("searchText", "a"));
                list.Add(new KeyValuePair<string, string>("$top", "10"));
                var content = new FormUrlEncodedContent(list);


                var response = await httpClient.PostAsync("https://almsearch.dev.azure.com/myorganization/myproject/_apis/search/codesearchresults?api-version=5.1-preview.1", content);
                var res = await response.Content.ReadAsStringAsync();

            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
    }
希望有人能告诉我发送post请求的正确方式。

尝试以下脚本:

            try
            {
                var personalaccesstoken = "{token}";

                using (HttpClient client = new HttpClient())
                {

                    client.DefaultRequestHeaders.Accept.Add(
                        new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                        Convert.ToBase64String(
                            System.Text.ASCIIEncoding.ASCII.GetBytes(
                                string.Format("{0}:{1}", "", personalaccesstoken))));

                    var httpClient = new HttpClient();

                    var newcontent = new StringContent("{\"searchText\":\"gradle\",\"$top\":33}", Encoding.UTF8, "application/json");

                    using (HttpResponseMessage response = await client.PostAsync("https://almsearch.dev.azure.com/{org}/{project}/_apis/search/codesearchresults?api-version=5.1-preview.1", newcontent))
                    {
                        response.EnsureSuccessStatusCode();
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }

                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
结果:

            try
            {
                var personalaccesstoken = "{token}";

                using (HttpClient client = new HttpClient())
                {

                    client.DefaultRequestHeaders.Accept.Add(
                        new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                        Convert.ToBase64String(
                            System.Text.ASCIIEncoding.ASCII.GetBytes(
                                string.Format("{0}:{1}", "", personalaccesstoken))));

                    var httpClient = new HttpClient();

                    var newcontent = new StringContent("{\"searchText\":\"gradle\",\"$top\":33}", Encoding.UTF8, "application/json");

                    using (HttpResponseMessage response = await client.PostAsync("https://almsearch.dev.azure.com/{org}/{project}/_apis/search/codesearchresults?api-version=5.1-preview.1", newcontent))
                    {
                        response.EnsureSuccessStatusCode();
                        string responseBody = await response.Content.ReadAsStringAsync();
                        Console.WriteLine(responseBody);
                    }

                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }