zoukankan      html  css  js  c++  java
  • C#后台 Get、Post 网络请求

     1.Post、Get请求

    public static string HttpPost(string url, string param)
            {
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                request.Accept = "*/*";
                request.Timeout = 15000;
                request.AllowAutoRedirect = false;
    
                StreamWriter requestStream = null;
                WebResponse response = null;
                string responseStr = null;
    
                try
                {
                    requestStream = new StreamWriter(request.GetRequestStream());
                    requestStream.Write(param);
                    requestStream.Close();
    
                    response = request.GetResponse();
                    if (response != null)
                    {
                        StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                        responseStr = reader.ReadToEnd();
                        reader.Close();
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                finally
                {
                    request = null;
                    requestStream = null;
                    response = null;
                }
    
                return responseStr;
            }
    Post提交
    public static string HttpPost(string url, string param)
            {
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                request.Accept = "*/*";
                request.Timeout = 15000;
                request.AllowAutoRedirect = false;
    
                StreamWriter requestStream = null;
                WebResponse response = null;
                string responseStr = null;
    
                try
                {
                    requestStream = new StreamWriter(request.GetRequestStream());
                    requestStream.Write(param);
                    requestStream.Close();
    
                    response = request.GetResponse();
                    if (response != null)
                    {
                        StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                        responseStr = reader.ReadToEnd();
                        reader.Close();
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                finally
                {
                    request = null;
                    requestStream = null;
                    response = null;
                }
    
                return responseStr;
            }
    Get提交

    微信公众平台调用post提交数据 有些需要传递json格式的数据如果不是json格式的数据可能会报错

    2.简单的示例代码

    /// <summary>
            /// 将字典类型序列化为json字符串
            /// </summary>
            /// <typeparam name="TKey">字典key</typeparam>
            /// <typeparam name="TValue">字典value</typeparam>
            /// <param name="dict">要序列化的字典数据</param>
            /// <returns>json字符串</returns>
            public static string SerializeDictionaryToJsonString<TKey, TValue>(Dictionary<TKey, TValue> dict)
            {
                if (dict.Count == 0)
                    return "";
    
                string jsonStr = JsonConvert.SerializeObject(dict);
                return jsonStr;
            }
    简单的将字典类型序列化为json字符串
    public ActionResult Index()
    {
                Dictionary<string, string> list = new Dictionary<string, string>();
                list.Add("begin_date", "2014-12-07");
                list.Add("end_date", "2014-12-07");
                //用户分析数据接口  开始没有传递json格式的数据 总是报日期格式不正确 简单的写了个json转换的
                var str = Utils.HttpPost("https://api.weixin.qq.com/datacube/getusersummary?access_token=xxxxxxxx", SerializeDictionaryToJsonString(list));
    
                return View();
    }    
    用户分析数据接口

    3.获取网页信息--可以做到一个文件多出使用(后台结果公告内容,通过获取结果公告内容抓取到前台显示)

    #region 获取网页信息
            #region 根据URL地址获取信息GET
    
            public static String GetResult(string url)
            {
                return GetResult(url, Encoding.Default);
            }
            #endregion
    
            #region 根据URL地址获取对应编码信息
            public static String GetResult(string url, Encoding encoding)
            {
                try
                {
    
                    var webRequest = (HttpWebRequest)WebRequest.Create(url);
                    //获取响应结果 
                    var webResponse = (HttpWebResponse)webRequest.GetResponse();
                    //获取响应流
                    Stream stream = webResponse.GetResponseStream();
                    using (StreamReader streamReader = new StreamReader(stream, encoding))
                    {
                        string result = String.Empty;
                        result = streamReader.ReadToEnd();
                        streamReader.Close();
                        webResponse.Close();
                        webRequest.Abort();
                        return result;
                    }
                }
                catch (Exception ex)
                {
                    return "-1";
                    //return ex.Message.Length > 100 ? ex.Message.Substring(0, 100) : ex.Message; 
                }
            }
            #endregion
            #endregion
    获取网页信息
    /// <summary>
        /// 获取并截取HTML源码
        /// </summary>
        /// <param name="strUrl"></param>
        /// <returns></returns>
        public static string GetUrlAndCutSourceHtml(string strUrl)
        { 
            string strTemp = Common.GetResult(strUrl, System.Text.Encoding.GetEncoding("utf-8"));
            if (!strTemp.Equals("-1"))
            {
                strTemp = strTemp.Substring(strTemp.IndexOf("<!--begin-->"));
                strTemp = strTemp.Substring(0, strTemp.IndexOf("<!--end-->"));
            }
            return strTemp;
        }
    获取之间的内容
    <body>
        <form>
            <!--begin-->
            <div>
                显示的内容
                显示的内容
                显示的内容
                显示的内容
                显示的内容
                显示的内容
                显示的内容
                显示的内容
                显示的内容
                显示的内容
                显示的内容
            </div>
            <!--end-->
        </form>
    </body>
    </html>
    html页面
  • 相关阅读:
    给函数中的形参设置默认值
    css-文字一行显示效果
    考试倒计时-通过开始时间字符串和间隔时间戳设置考试倒计时
    vue父向子传值,子组件无法及时更新父组件传过来的值的问题
    vue+elementUI在输入框中按回车键会刷新页面
    前端面试题记录
    Web是如何工作的:基本架构和原理
    JavaScript构造函数和原型概述
    js byte字节流和数字,字符串之间的转换,包含无符和有符之间的转换
    C#串口通讯,复制粘贴就可用,仅仅介绍怎样最快的搭建一个串口通讯,异常拦截等等需要自己加上
  • 原文地址:https://www.cnblogs.com/lovable/p/9186889.html
Copyright © 2011-2022 走看看