zoukankan      html  css  js  c++  java
  • 模拟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个字段。

  • 相关阅读:
    移动APP的开发需求分析
    我心中的理想团队和对软件开发流程的理解
    Git 命令
    在Visio2010中修改默认字体的大小
    Remove @Override annotation错误提示
    SPRING框架中ModelAndView、Model、ModelMap区别
    select count(*)和select count(1)的区别
    eclipse 关键字高亮显示
    MyEclipse下安装MyBatis Generator代码反向生成工具
    关于 log4j.additivity的说明
  • 原文地址:https://www.cnblogs.com/visibleisfalse/p/6004046.html
Copyright © 2011-2022 走看看