using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace WebApplication.Controllers { public class WebApi { /// /// Get方式提交数据 /// /// /// public object retObject(string methodname) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(methodname); request.Method = "GET"; request.ContentType = "text/html;charset=UTF-8"; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8); string retString = myStreamReader.ReadToEnd(); var retObject = (JObject)JsonConvert.DeserializeObject(retString); return retObject; } /// /// Post方式提交数据 /// /// /// /// public string HttpPost(string url, string body, string accessToken) { Encoding encoding = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; //request.Accept = "text/html, application/xhtml+xml, */*"; request.ContentType = "application/json; charset=utf-8"; byte[] buffer = encoding.GetBytes(body); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { return reader.ReadToEnd(); } } /// /// http Post请求 发送Json数据 /// /// /// /// /// public string PostJson(string url, string postData, Hashtable headht = null) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.ContentType = "application/json;charset=UTF-8"; request.UserAgent = "www.qq.cc/WebRequest"; request.Accept = "application/json"; #region headers设置 if (headht != null) { foreach (DictionaryEntry item in headht) { request.Headers.Add(item.Key.ToString(), item.Value.ToString()); } } #endregion byte[] paramJsonBytes; paramJsonBytes = System.Text.Encoding.UTF8.GetBytes(postData); request.ContentLength = paramJsonBytes.Length; Stream writer; try { writer = request.GetRequestStream(); } catch (Exception e) { writer = null; Console.Write("连接服务器失败!"); } writer.Write(paramJsonBytes, 0, paramJsonBytes.Length); writer.Close(); HttpWebResponse response; try { response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { response = ex.Response as HttpWebResponse; } Stream resStream = response.GetResponseStream(); StreamReader reader = new StreamReader(resStream); string text = reader.ReadToEnd(); return text; } /// /// Get 方法 /// /// /// Headers 中的秘钥 /// public string HttpGet(string url ,string accessToken) { string result = string.Empty; HttpWebRequest reqS = (HttpWebRequest)WebRequest.Create(url); reqS.Method = "GET"; //添加请求头 reqS.Headers.Add("x-acs-dingtalk-access-token",accessToken); reqS.ContentType = "application/json; charset=utf-8"; HttpWebResponse resS = (HttpWebResponse)reqS.GetResponse(); Stream myResponseStream = resS.GetResponseStream(); StreamReader streamReader = new StreamReader(myResponseStream); result = streamReader.ReadToEnd(); streamReader.Close(); myResponseStream.Close(); // 解析返回的json数据(使用 jobject) JObject theResult = (JObject)JsonConvert.DeserializeObject(result); return theResult.ToString(); } /// /// Json解析 /// /// /// public string[] jsons(string result) { JObject jo = JObject.Parse(result); string[] values1 = jo.Properties().Select(item => item.Value.ToString()).ToArray(); return values1; } } }