public string Request(HttpRequestOperation operation, string postData, string postUrl) { string result = string.Empty; string characterSet = "utf-8"; HttpWebRequest request = SsoHttpWebRequest(operation, postUrl); if (!string.IsNullOrEmpty(postData)) { byte[] b = Encoding.ASCII.GetBytes(postData);//这个地方对postData的数据进行 request.ContentLength = b.Length; using (Stream stream = request.GetRequestStream()) { stream.Write(b, 0, b.Length); } } try { #region 获取服务器返回的资源 using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { if (!string.IsNullOrEmpty(response.CharacterSet)) { characterSet = response.CharacterSet; } using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(characterSet))) { result = reader.ReadToEnd(); } } #endregion } catch (WebException wex) { #region WebResponse wr = wex.Response; using (Stream st = wr.GetResponseStream()) { using (StreamReader sr = new StreamReader(st, Encoding.GetEncoding(characterSet))) { result = HttpUtility.HtmlDecode(sr.ReadToEnd()); } } throw new Exception("SSO接口调用异常!"); #endregion } catch (Exception ex) { result = ex.ToString(); } finally { request = null; } return(result); }
static void Main(string[] args) { IHttpRequest httpRequest = new HttpRequestOperation(); var companies = httpRequest.MakeHttpRequestFromInternet().Result; foreach (var company in companies) { Console.WriteLine($"ID: {company.id}"); Console.WriteLine($"Type: {company.attributes.type}"); Console.WriteLine($"Name: {company.attributes.name}"); Console.WriteLine($"Created At: {company.attributes.created_at}"); Console.WriteLine($"Links: {company.links.self}"); Console.WriteLine("============================================"); } Console.Read(); }
private HttpWebRequest SsoHttpWebRequest(HttpRequestOperation operation, string url) { HttpWebRequest request = null; switch (operation) { case HttpRequestOperation.Token: request = CreateRequest(url, "POST", ContentType.Urlencoded); break; case HttpRequestOperation.Add: request = CreateRequest(url, "POST", ContentType.AtomXmlEntry); break; case HttpRequestOperation.Delete: request = CreateRequest(url, "DELETE", ContentType.AtomXmlEntry); break; case HttpRequestOperation.Update: request = CreateRequest(url, "PUT", ContentType.AtomXmlEntry); break; } return(request); }