zoukankan      html  css  js  c++  java
  • c# winform 使用webapi

    public static string HttpPostNoFile(string url, Dictionary<string,string> para)
            {
                Encoding encoding = Encoding.UTF8;
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);//webrequest请求api地址  
                request.Accept = "text/html,application/xhtml+xml,*/*";
                request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
                request.Method = "POST";//get或者post  
    
                StringBuilder buffer = new StringBuilder();//这是要提交的数据
                int i = 0;
                //通过泛型集合转成要提交的参数和数据
                foreach (string key in para.Keys)
                {
                    if (i > 0)
                    {
                        buffer.AppendFormat("&{0}={1}", key, para[key]);
                    }
                    else
                    {
                        buffer.AppendFormat("{0}={1}", key, para[key]);
                    }
                    i++;
                }
    
                byte[] bs = Encoding.UTF8.GetBytes(buffer.ToString());//UTF-8
                request.ContentLength = bs.Length;
                using (Stream reqStream = request.GetRequestStream())
                {
                    reqStream.Write(bs, 0, bs.Length);
                    reqStream.Close();
                }
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
                    {
                        return reader.ReadToEnd().ToString();
                    }
                    
                }
            }
    
            public static string HttpGet(string url, Dictionary<string, string> para)
            {
                Encoding encoding = Encoding.UTF8;
                WebClient webClient = new WebClient();
                StringBuilder buffer = new StringBuilder("?");//这是要提交的数据
                int i = 0;
                foreach (string key in para.Keys)
                {
                    string pk = para[key].Replace('_', '-');
                    if (i > 0)
                    {
                        buffer.AppendFormat("&{0}={1}", key, pk);
                    }
                    else
                    {
                        buffer.AppendFormat("{0}={1}", key, pk);
                    }
                    i++;
                }
                url = url + buffer.ToString();
    
                Stream stream = webClient.OpenRead(url);
                StreamReader sr = new StreamReader(stream);
                string str = sr.ReadToEnd();
                return str;
            }
    
    
    
            /// <summary>
            /// 把对象转换为JSON字符串
            /// </summary>
            /// <param name="o"></param>
            /// <returns></returns>
            public static string ToJSON(this object o)
            {
                if(o == null)
                {
                    return null;
                }
    
                return JsonConvert.SerializeObject(o);
            }
    
            /// <summary>
            /// 把Json文本转为实体
            /// </summary>
            /// <typeparam name="T"></typeparam>
            /// <param name="input"></param>
            /// <returns></returns>
            public static T FromJSON<T>(this string input)
            {
                try
                {
                    return JsonConvert.DeserializeObject<T>(input);
                }
                catch (Exception ex)
                {
                    return default(T);
                }
            }
    

      

  • 相关阅读:
    使用 logger 在脚本中输出多个日志
    MySQL 5.7 安装完成后,立即要调整的性能选项
    多线程练习2_龟兔赛跑
    多线程练习1_网图下载
    【BFS(预处理)+SPFA】【NOIP2013】华容道
    【数学】【NOIP2013】解方程
    【二分答案+倍增】【NOIP2015】运输计划
    std::strncpy 简介
    text 文本去重行
    关于string::copy()的比较详细的示例
  • 原文地址:https://www.cnblogs.com/wangzuofei/p/11756908.html
Copyright © 2011-2022 走看看