工作中用到,记录方便以后:
思路: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; }
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"}"; } }
5,
注意:1,返回的数据跟model的结构要一致
2,假如返回的json有10个字段,而你只需要其中5个字段,则model可以只定义5个字段。