示例#1
0
        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();
        }
示例#3
0
        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);
        }