zoukankan      html  css  js  c++  java
  • 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;
                        }
                    }
                }
    
    
            }
  • 相关阅读:
    Cookie和Session的区别
    get和post的区别
    TCP和UDP的区别
    TCP三次握手过程
    docker 安装prometheus
    大数据集群环境搭建之一 hadoop-ha高可用安装
    大数据集群环境 zookeeper集群环境安装
    Centos 脚本中几个特殊符号的作用笔记
    VMware 设置虚拟机Centos 上网的两种方式
    大数据集群环境搭建之一 Centos基本环境准备
  • 原文地址:https://www.cnblogs.com/xcj26/p/9887263.html
Copyright © 2011-2022 走看看