因为经常要用到就在这做个笔记,下次用到的时候就可以直接使用不用去找了。
Get方式请求api
Get方式请求api
public dynamic ResultApiGet(string https, string strContent){HttpWebRequest request = (HttpWebRequest)WebRequest.Create(https + strContent);request.Method = "GET";request.ContentType = "textml;charset=UTF-8";HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream myResponseStream = response.GetResponseStream();StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);string retString = myStreamReader.ReadToEnd();myStreamReader.Close();myResponseStream.Close();dynamic ja = JsonConvert.DeserializeObject(retString);return ja;}
Post方式请求api public dynamic ResultApiPost(string https, string strContent){HttpWebRequest request = (HttpWebRequest)WebRequest.Create(https);request.Method = "POST";request.ContentType = "application/json";using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream())){dataStream.Write(strContent);dataStream.Close();}HttpWebResponse response = (HttpWebResponse)request.GetResponse();string encoding = response.ContentEncoding;if (encoding == null || encoding.Length < 1){encoding = "UTF-8"; //默认编码 }StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));string retString = reader.ReadToEnd();//解析json dynamic ja = JsonConvert.DeserializeObject(retString);return ja;}两种方式中的参数https就是api的地址,strContent就是请求时传的参数,通过自己拼接字符串构成,如下:
StringBuilder strContent = new StringBuilder();
strContent.Append("?PageIndex= " + input.SkipCount + "&PageSize=" + input.MaxResultCount + "&ShangHu_subType= " + input.ShangHu_subType);