HttpClient 调用WebAPI时,传参的三种方式

Posted 提升自己,迎接未来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HttpClient 调用WebAPI时,传参的三种方式相关的知识,希望对你有一定的参考价值。

        public void Post()
        {
            //方法一,传json参数
            var d = new {
                username = " ",
                password = " ",
                grant_type = "password",
                appcode = " ",
                companyid = " ",
                version = "1.0",
            };
            var data = JsonConvert.SerializeObject(d);
            HttpContent httpContent = new StringContent(data);
            httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            using (HttpClient httpClient = new HttpClient())
            {
                string responseJson = httpClient.PostAsync("http://192.168.8.178:1646/token", httpContent)
                   .Result.Content.ReadAsStringAsync().Result;
            }

               

           

            //方法二,传表单参数
            FormUrlEncodedContent formContent = new FormUrlEncodedContent(new Dictionary<string, string>()
            {
                {"username"," " },
                {"password"," " },
                {"grant_type","password" },
                {"appcode"," " },
                {"companyid"," " },
                {"version","1.0" },
             });


            using (HttpClient httpClient = new HttpClient())
            {
                httpClient.DefaultRequestHeaders.Add("User-Agent", @"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
                httpClient.DefaultRequestHeaders.Add("Accept", @"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
                HttpResponseMessage response = httpClient.PostAsync("http://192.168.8.178:1646/token", formContent).Result;
                if (response.IsSuccessStatusCode)
                {
                    string result = response.Content.ReadAsStringAsync().Result;
                }
            }


            ///方法三,传字节流   
            using (HttpClient http = new HttpClient())
            {
                http.DefaultRequestHeaders.Add("User-Agent", @"Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)");
                http.DefaultRequestHeaders.Add("Accept", @"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");

                HttpResponseMessage message = null;

                string xx = @"{ ""username"":"" "",""password"":"" "",""grant_type"":""password"",""appcode"":"" "",""companyid"":"" "",""version"":""1.0""}";
                using (Stream dataStream = new MemoryStream(Encoding.Unicode.GetBytes(xx) ?? new byte[0]))
                {
                    using (HttpContent content = new StreamContent(dataStream))
                    {
                        content.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
                        var task = http.PostAsync("http://192.168.8.178:1646/token", content);
                        message = task.Result;
                    }
                }
                if (message != null && message.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    using (message)
                    {
                        string result = message.Content.ReadAsStringAsync().Result;
                    }
                }
            }


        }

 

以上是关于HttpClient 调用WebAPI时,传参的三种方式的主要内容,如果未能解决你的问题,请参考以下文章

vue路由传参的三种基本方式

vue路由传参的三种基本方式

vue:传参的三种方式以及props的三种写法以及传参的注意事项

vue传参的三种方式

路由传参的三种方法

React路由传参的三种方式