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