ASP.NET获取在线接口数据HttpPost

哈喽,又是新的一周。

上次说过了HTTPGet的接口参数获取,今天就顺势说下HttpPost的数据获取吧。

 

话不多说,Code Is EveryThing

    private static string PostDataJsonBy(string url,string content)
        {
            string result = string.Empty;
            FormUrlEncodedContent body = new FormUrlEncodedContent(new Dictionary<string, string>());
            try
            {
                byte[] bytes = Encoding.UTF8.GetBytes(content);
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
                request.Method = "POST";
                request.ContentLength = bytes.Length;
                request.ContentType = "application/json";
                using (Stream reqstream = request.GetRequestStream())
                {
                    reqstream.Write(bytes, 0, bytes.Length);
                }
                //声明一个HttpWebRequest请求
                request.Timeout = 90000;
                //设置连接超时时间
                request.Headers.Set("Pragma", "no-cache");
                try
                {
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                    using (Stream streamReceive = response.GetResponseStream())
                    {
                        using (StreamReader streamReader = new StreamReader(streamReceive, Encoding.UTF8))
                        {
                            result = streamReader.ReadToEnd();
                        }
                    }
                }
                catch (Exception e)
                {
                    result = e.Message;
                }
            }
            catch (Exception)
            {
                return "[]";
            }
            return result;
        }

简简单单,这个就是Post 的数据获取了。

 

如果这个帖子到这里就终结,好像也没啥,毕竟介绍都介绍完了。

但是我们写代码的怎么能就这么粗糙呢?

 

 

上次就说过Get,这次又说了Post,口罩都戴一年了。还分什么你我他啊

   private static string GetDataJsonBy(string url,string content,string method = "Get")
        {
            string result = string.Empty;
            try
            {
                //声明一个HttpWebRequest请求
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
                //设置连接超时时间
                request.Timeout = 90000;
                if (method != "Get")
                {
                    FormUrlEncodedContent body = new FormUrlEncodedContent(new Dictionary<string, string>());
                    byte[] bytes = Encoding.UTF8.GetBytes(content);
                    request.Method = "POST";
                    request.ContentLength = bytes.Length;
                    request.ContentType = "application/json";
                    using (Stream reqstream = request.GetRequestStream())
                    {
                        reqstream.Write(bytes, 0, bytes.Length);
                        Console.WriteLine(bytes.ToString(), 0, bytes.Length);
                    }
                    request.Headers.Set("Pragma", "no-cache");
                }
               
                try
                {
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                    using (Stream streamReceive = response.GetResponseStream())
                    {
                        using (StreamReader streamReader = new StreamReader(streamReceive, Encoding.UTF8))
                        {
                            result = streamReader.ReadToEnd();
                        }
                    }
                   
                }
                catch (Exception e)
                {
                    result = e.Message;
                }
            }
            catch (Exception)
            {
                return "[]";
            }
            return result;
        }

鉴于我出众的大脑,在原有post方法上进行了一些小小的改动(懒)

于是这个兼顾了Get和Post的方法就成了。

【其实是下次我不用在写了】

 

好了,这次就到这里

 

posted @ 2020-11-30 10:09  王月半子  阅读(811)  评论(0编辑  收藏  举报