Esempio n. 1
0
        private static WebResponse GetResponse(WebRequestDescriptor proxyRequest, object[] urlArgs, object[] postArgs)
        {
            var postData = Encoding.UTF8.GetBytes(String.Format(proxyRequest.PostData, postArgs));
            var request  = WebRequest.Create(String.Format(proxyRequest.Url, urlArgs)) as HttpWebRequest;

            if (!String.IsNullOrEmpty(request.Host))
            {
                request.Host = proxyRequest.Host;
            }
            request.Method          = proxyRequest.Method;
            request.ContentLength   = postData.Length;
            request.CookieContainer = new CookieContainer();
            request.ContentType     = proxyRequest.ContentType;
            using (var responseStream = request.GetRequestStream())
            {
                responseStream.Write(postData, 0, postData.Length);
            }

            return(request.GetResponse());
        }
Esempio n. 2
0
 /// <summary>
 /// 调用一个返回Xml数据的Web地址
 /// </summary>
 public static XmlReader CallXmlApi(this WebRequestDescriptor proxyRequest, object[] urlArgs, object[] postArgs)
 {
     return(new XmlTextReader(GetResponse(proxyRequest, urlArgs, postArgs).GetResponseStream()));
 }
Esempio n. 3
0
 /// <summary>
 /// 调用一个返回二进制流数据的Web地址,用于文件下载
 /// </summary>
 public static WebResponse CallStreamApi(this WebRequestDescriptor proxyRequest, object[] urlArgs, object[] postArgs)
 {
     return(GetResponse(proxyRequest, urlArgs, postArgs));
 }
Esempio n. 4
0
 /// <summary>
 /// 调用一个返回JSON数据的Web地址
 /// </summary>
 public static T CallJsonApi <T>(this WebRequestDescriptor proxyRequest, object[] urlArgs, object[] postArgs)
     where T : class
 {
     return(GetResponse(proxyRequest, urlArgs, postArgs).ExtractJsonData <T>());
 }