• c#访问webapi以及获取


    提交post

    #region XML方式提交
            public static void XML() {
                HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create("http://localhost:30447/api/product/showname");
                wReq.Method = "POST";
                wReq.ContentType = "text/xml";
                wReq.Headers.Add("charset:utf-8");
                var encoding = Encoding.GetEncoding("utf-8");

                if (GetXml() != null)
                {
                    byte[] buffer = encoding.GetBytes(GetXml());
                    wReq.ContentLength = buffer.Length;
                    wReq.GetRequestStream().Write(buffer, 0, buffer.Length);
                }
                else {
                    wReq.ContentLength = 0;
                }
            }
            /// <summary>
            /// 发送的XML
            /// </summary>
            /// <returns></returns>
            public static string GetXml() {
                StringBuilder str = new StringBuilder();
                str.Append("<?xml version="1.0" encoding="UTF-8"?>");
                str.Append("<Product>");
                str.Append("<Id>456</Id>");
                str.Append("<Name>ASDD</Name>");
                str.Append("<Categroy>QWER</Categroy>");
                str.Append("<Price>456</Price>");
                str.Append("</Product>");
                return str.ToString();
            }
            #endregion

            #region Text提交方法
            public static void TEXT() {
                HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create("http://localhost:30447/api/product/showname");
                wReq.Method = "POST";
                wReq.ContentType = "text/plain";

                byte[] data = Encoding.Default.GetBytes("Id:798,Name:"QW",Categroy:"ajsdkf",Price:789");
                wReq.ContentLength = data.Length;
                Stream reqStream = wReq.GetRequestStream();
                reqStream.Write(data, 0, data.Length);
                reqStream.Close();
                using (StreamReader sr = new StreamReader(wReq.GetResponse().GetResponseStream()))
                {
                    string result = sr.ReadToEnd();
                }
            }
            #endregion
            #region JSON发送方法
            /// <summary>
            /// JSON发送方法
            /// </summary>
            public static void Json() {
                HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create("http://localhost:30447/api/product/showname");
                wReq.Method = "POST";
                wReq.ContentType = "application/JSON";

                byte[] data = Encoding.Default.GetBytes("{Id:123,Name:"zwy",Categroy:"ajsdkf",Price:123}");
                wReq.ContentLength = data.Length;
                Stream reqStream = wReq.GetRequestStream();
                reqStream.Write(data, 0, data.Length);
                reqStream.Close();
                using (StreamReader sr = new StreamReader(wReq.GetResponse().GetResponseStream()))
                {
                    string result = sr.ReadToEnd();
                }
            }
            #endregion
            #region Form提交

            public static void Froms()
            {
                HttpWebRequest wReq = (HttpWebRequest)WebRequest.Create("http://localhost:30447/api/product/showname");
                wReq.Method = "POST";
                wReq.ContentType = "application/x-www-form-urlencoded";

                string str = "Id:123,Name:"zwy",Categroy:"ajsdkf",Price:123";

                byte[] data = Encoding.Default.GetBytes(str);
                wReq.ContentLength = data.Length;
                Stream reqStream = wReq.GetRequestStream();
                reqStream.Write(data, 0, data.Length);
                reqStream.Close();
                using (StreamReader sr = new StreamReader(wReq.GetResponse().GetResponseStream()))
                {
                    string result = sr.ReadToEnd();
                }
            }

            #endregion

    获取

    [HttpPost]
            public Product ShowName()
            {
                var prod=new Product();

                var s = System.Web.HttpContext.Current.Request.InputStream;
                var b = new byte[s.Length];
                s.Read(b, 0, (int)s.Length);
                var str = Encoding.UTF8.GetString(b);
                try
                {
                    //如果不是JSON报错
                    var serializer = new JavaScriptSerializer();
                    dynamic obj = serializer.Deserialize(str, typeof(object));
                    //prod = serializer.Deserialize<Product>(str);

                }
                catch (Exception ex)
                {
                    try
                    {
                        //如果不是xml,也不是json
                        var d = new XmlDocument();
                        d.LoadXml(str);
                        //prod=  DeserializeToObject<Product>(str);
                    }
                    catch (Exception e)
                    {
                        //text文本
                        string index = str;
                    }
         
                }
                return prod;
            }

  • 相关阅读:
    服务注册发现Eureka之二:高可用服务注册中心
    可重入锁 公平锁 读写锁、CLH队列、CLH队列锁、自旋锁、排队自旋锁、MCS锁、CLH锁
    红黑树(Red-Black tree)
    fuser 命令小结
    客户端负载均衡Ribbon之三:AvailabilityFilteringRule的坑(Spring Cloud Finchley.SR2)
    mysql重复记录的查询删除方法
    innodb的锁、update单条记录的花费时间压测
    被kill问题之1:进程物理内存远大于Xmx的问题分析
    服务注册发现Eureka之三:Spring Cloud Ribbon实现客户端负载均衡(客户端负载均衡Ribbon之三:使用Ribbon实现客户端的均衡负载)
    十二、jdk工具之jcmd介绍(堆转储、堆分析、获取系统信息、查看堆外内存)
  • 原文地址:https://www.cnblogs.com/zwyAndDong/p/8405695.html
Copyright © 2020-2023  润新知