C# 在代码里调用其他Webapi
Get方法 (url拼接方式传值)
try { var url = "www.baidu.com"; WebClient MyWebClient = new WebClient(); MyWebClient.Credentials = CredentialCache.DefaultCredentials; Byte[] pageData = MyWebClient.DownloadData(AiNengLocation_Url); MemoryStream ms = new MemoryStream(pageData); using (StreamReader sr = new StreamReader(ms, Encoding.GetEncoding("UTF-8"))) { returnValue = sr.ReadLine(); } if (returnValue != null && returnValue != "") { #region 解析返回接口 var all = JsonConvert.DeserializeObject<IDictionary<string, object>>(returnValue); var neList = JsonConvert.SerializeObject(all["xxxx"]); JavaScriptSerializer Serializer = new JavaScriptSerializer(); List<RealModel> objs = Serializer.Deserialize<List<RealModel>>(neList);//RealModel是类对象 #endregion } } catch (Exception e) { }
Post方法(用json方式传值)
var url = "http://xxxx:123/api/Aaa"; string strData = "[{\"name\":\"" + "tag" + "\",\"value\":" + "11" + ",\"datetime\":\"" + "1999-01-01 00:00:00" + "\"}]"; string result = ""; //将实时数据转发到一级平台 HttpWebRequest wbRequest = (HttpWebRequest)WebRequest.Create(url); wbRequest.Method = "POST"; wbRequest.ContentType = "application/x-www-form-urlencoded"; string paramData = "data=" + strData; byte[] byteArray = Encoding.UTF8.GetBytes(paramData); wbRequest.ContentLength = byteArray.Length; IDictionary<string, object> all; try { using (Stream requestStream = wbRequest.GetRequestStream()) { using (StreamWriter swrite = new StreamWriter(requestStream)) { swrite.Write(paramData); } } HttpWebResponse wbResponse = (HttpWebResponse)wbRequest.GetResponse(); Stream stream = wbResponse.GetResponseStream(); //获取响应内容 using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) { result = reader.ReadToEnd(); } all = JsonConvert.DeserializeObject<IDictionary<string, object>>(result); } catch (Exception e) { }