因为经常要用到就在这做个笔记,下次用到的时候就可以直接使用不用去找了。
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);