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)); }
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); }