Esempio n. 1
0
        public static async Task <byte[]> GetRequestBytesAsync <T>(Entity.WeixinRequest <T> _request, CookieContainer cookie)
        {
            var request = CreateRequest(_request, ref cookie);

            if (_request.HttpMethod == Enum.HttpMethods.POST)
            {
                if (_request.QueryBytes == null || _request.QueryBytes.Length == 0)
                {
                    if (!string.IsNullOrWhiteSpace(_request.QueryString))
                    {
                        WriteRequestParas(request, _request.QueryString);
                    }
                    else
                    {
                        request.ContentLength = 0;
                    }
                }
                else
                {
                    WriteRequestParas(request, _request.QueryBytes);
                }
            }

            return(await GetResponseBytesAsync(request));
        }
Esempio n. 2
0
        private static HttpWebRequest CreateRequest <T>(Entity.WeixinRequest <T> _request, ref CookieContainer cookie)
        {
            var request = WebRequest.Create(_request.ApiUrl) as HttpWebRequest;

            request.Accept            = _request.Accept;
            request.UserAgent         = _request.UserAgent;
            request.CookieContainer   = cookie;
            request.AllowAutoRedirect = _request.AllowAutoRedirect;

            if (_request.HttpMethod == Enum.HttpMethods.GET)
            {
                request.Method = "GET";
            }
            else if (_request.HttpMethod == Enum.HttpMethods.POST)
            {
                request.Method = "POST";
            }

            if (!string.IsNullOrWhiteSpace(_request.ContentTypeHeader))
            {
                request.ContentType = _request.ContentTypeHeader;
            }

            if (_request.KeepAlive)
            {
                request.KeepAlive = true;
            }

            if (!string.IsNullOrWhiteSpace(_request.Referer))
            {
                request.Referer = _request.Referer;
            }

            if (_request.Headers != null)
            {
                foreach (var key in _request.Headers.Keys)
                {
                    request.Headers.Add(key, _request.Headers[key]);
                }
            }

            return(request);
        }