C# 调用POST请求

        public static void PostUrl_Ex(string url, string postData)
        {
            try
            {
                //对于提交内容中的中文使用UrlEncode方式编码 发送
                //string dataSource = "name=1234&qq=1234421&topicName=%E5%BA%86%E7%86%99%E5%A4%A7%E5%AD%A6MBA";
                string dataSource = postData;
                //Http协议内容 使用ASCII码字符
                byte[] data = Encoding.ASCII.GetBytes(dataSource);

                //发送信息
                //HttpWebRequest req = WebRequest.CreateHttp(url);
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                req.Method = "post";
                req.ContentType = "application/json";

                //req.Timeout = 5 * 1000;//请求超时时间

                //Accept - Language:zh - CN,zh; q = 0.8
                req.Headers.Add("Accept-Language", "zh - CN,zh; q = 0.8");
                req.Credentials = new NetworkCredential("root", "root123");

                //指定客户端代理的方式
                //req.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2560.0 Safari/537.36";
                //此方式不可用
                //req.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2560.0 Safari/537.36");
                //添加Post参数
                Stream reqStream = req.GetRequestStream();
                reqStream.Write(data, 0, data.Length);
                reqStream.Close();

                //接收相应
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                Stream respStream = resp.GetResponseStream();
                StreamReader reader = new StreamReader(respStream, Encoding.UTF8);
                string result = reader.ReadToEnd();          
                reader.Close();
            }
            catch (Exception e)
            {
               //e.Message.ToString()
            }
        }
 



        /// <summary>
        /// 
        /// </summary>
        /// <param name="url">为请求地址: http://127.0.0.1:8080/wms/broadcast/startAlarmTaskTTS </param>
        /// <param name="postData">请求内容 Json格式串</param>
        /// <returns></returns>
        public static string PostUrl(string url, string postData)
        {
            string result = "";
            while (true)
            {
                try
                {
                    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
                    req.Method = "POST";
                    req.ContentType = "application/json";
                    req.Timeout = 5 * 1000;//请求超时时间
                    //req.ReadWriteTimeout = 5 * 1000;  //访问成功后读写流超时                
                    req.Credentials = new NetworkCredential("root", "root123");
                    //byte[] data = Encoding.UTF8.GetBytes(postData);
                    //req.ContentLength = data.Length;
                    using (var streamWriter = new StreamWriter(req.GetRequestStream()))
                    {
                        streamWriter.Write(postData);
                        streamWriter.Flush();
                        streamWriter.Close();                      
                    }

                    HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                    if (resp.StatusCode != HttpStatusCode.OK) //如果服务器未响应,那么继续等待相应
                        continue;                   
                    Stream stream = resp.GetResponseStream();
                    //获取响应内容
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        result = reader.ReadToEnd();
                    }
                }
                catch (Exception e)
                {
                     MessageBox.Show(e.Message.ToString());
                }

                return result;               
            }
        }

本文链接:https://blog.csdn.net/cn_514/article/details/100037524

欢迎加群交流 QQ群 830426796

posted @ 2019-08-23 14:33  ₯㎕~  阅读(704)  评论(0编辑  收藏  举报