模拟http请求返回json数据的接口并解析

工作中用到,记录方便以后:

思路:http请求restful接口,返回json字符串,然后将字符串解析为对象。

1,先看看浏览器中请求返回的结果。

2,

3,GetWebContent 方法代码:

        /// <summary>
        /// 用Get方式获取HTML页面内容
        /// </summary>
        /// <param name="url"></param>
        /// <param name="encode"></param>
        /// <returns></returns>
        public static string GetWebContent(string url, string encode)
        {
            string strResult = "";
            try
            {
                var request = (HttpWebRequest)WebRequest.Create(url);
                //声明一个HttpWebRequest请求   
                request.Timeout = 30000;
                //设置连接超时时间   
                request.Headers.Set("Pragma", "no-cache");
                var response = (HttpWebResponse)request.GetResponse();
                Stream streamReceive = response.GetResponseStream();
                Encoding encoding = Encoding.GetEncoding(string.IsNullOrEmpty(encode) ? "gb2312" : encode);
                if (streamReceive != null)
                {
                    var streamReader = new StreamReader(streamReceive, encoding);
                    strResult = streamReader.ReadToEnd();
                }
            }
            catch (Exception ex)
            {

            }
            return strResult;
        }
View Code

4,或者这样

        public static string GetApiJsonByUrl(string url)
        {
            try
            {
                Uri u = new Uri(url);
                HttpWebRequest mRequest = (HttpWebRequest)WebRequest.Create(u);
                mRequest.Method = "GET";
                mRequest.ContentType = "application/x-www-form-urlencoded";
                HttpWebResponse wr = (HttpWebResponse)mRequest.GetResponse();

                Stream sIn = wr.GetResponseStream();

                StreamReader sr = new StreamReader(sIn);
                string content = sr.ReadToEnd();

                sr.Close();
                sIn.Close();
                wr.Close();
                return content;
            }
            catch { return "{"msg":"ERROR"}"; }
        }
View Code

5,

注意:1,返回的数据跟model的结构要一致

        2,假如返回的json有10个字段,而你只需要其中5个字段,则model可以只定义5个字段。

原文地址:https://www.cnblogs.com/visibleisfalse/p/6004046.html