//异步请求 public void ExecuteAsyc(Method method) { string url = string.Empty; if (method == Method.GET) { UrlToQuery(_url); url = this._url; //Console.WriteLine("url: 1------------>{0}", url); if (_keyValues.Count > 0) { url = url + "?" + EasyHttpUtils.NameValuesToQueryParamString(_keyValues); } //Console.WriteLine("url: 2------------>{0}", url); _request = WebRequest.Create(url) as HttpWebRequest; EasyHttpUtils.CopyHttpHeader(_tempRequest, _defaultHeaderRequest, _request); _request.Method = "GET"; _request.CookieContainer = _cookieContainer; WriteHeader(); } else if (method == Method.POST) { url = _url; _request = _tempRequest; _request.CookieContainer = _cookieContainer; _request.Method = "POST"; EasyHttpUtils.CopyHttpHeader(_tempRequest, _defaultHeaderRequest, _request); WriteHeader(); if (_isMultpart) { EasyHttpUtils.WriteFileToRequest(_request, _keyValues); } else { if (string.IsNullOrEmpty(_request.ContentType)) { _request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; } string querystring = EasyHttpUtils.NameValuesToQueryParamString(_keyValues); //如果有自定义post内容,则写入自定义post数据,否则写入form(form优先) if (!string.IsNullOrEmpty(_customePostData)) { querystring = _customePostData; } //处理请求参数 using (var stream = _request.GetRequestStream()) { byte[] postData = _postEncoding.GetBytes(querystring); stream.Write(postData, 0, postData.Length); stream.Close(); } } } submitRequestAsyc(_request); }
/// 根据指定方法执行请求,并返回原始Response public HttpWebResponse Execute(Method method) { string url = string.Empty; //get方式直接拼接url if (method == Method.GET) { UrlToQuery(_url); url = this._url; if (_keyValues.Count > 0) { //分解参数 url = url + "?" + EasyHttpUtils.NameValuesToQueryParamString(_keyValues); } _request = WebRequest.Create(url) as HttpWebRequest; EasyHttpUtils.CopyHttpHeader(_tempRequest, _defaultHeaderRequest, _request); _request.Method = "GET"; _request.CookieContainer = _cookieContainer; WriteHeader(); } //post方式需要写入 else if (method == Method.POST) { url = _url; _request = _tempRequest; _request.CookieContainer = _cookieContainer; _request.Method = "POST"; EasyHttpUtils.CopyHttpHeader(_tempRequest, _defaultHeaderRequest, _request); WriteHeader(); if (_isMultpart) { EasyHttpUtils.WriteFileToRequest(_request, _keyValues); } else { if (string.IsNullOrEmpty(_request.ContentType)) { _request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; } string querystring = EasyHttpUtils.NameValuesToQueryParamString(_keyValues); if (_customePostData != null) { querystring = _customePostData; } using (var stream = _request.GetRequestStream()) { byte[] postData = _postEncoding.GetBytes(querystring); stream.Write(postData, 0, postData.Length); stream.Close(); } } } else if (method == Method.PUT) { UrlToQuery(_url); url = this._url; if (_keyValues.Count > 0) { url = url + "?" + EasyHttpUtils.NameValuesToQueryParamString(_keyValues); } _request = WebRequest.Create(url) as HttpWebRequest; _request.CookieContainer = _cookieContainer; WriteHeader(); EasyHttpUtils.CopyHttpHeader(_tempRequest, _defaultHeaderRequest, _request); _request.Method = "PUT"; } else if (method == Method.DELETE) { UrlToQuery(_url); url = this._url; if (_keyValues.Count > 0) { url = url + "?" + EasyHttpUtils.NameValuesToQueryParamString(_keyValues); } _request = WebRequest.Create(url) as HttpWebRequest; _request.CookieContainer = _cookieContainer; EasyHttpUtils.CopyHttpHeader(_tempRequest, _defaultHeaderRequest, _request); _request.Method = "DELETE"; WriteHeader(); } try{ _response = _request.GetResponse() as HttpWebResponse; } catch (WebException ex) { Console.WriteLine("\n请求出错--------->:{0}", ex.Message); return(null); } if (_response != null) { _cookieContainer.Add(_response.Cookies); //添加返回的cookie 到 cookieContainer } if (_logLevel != EasyHttpLogLevel.None) { try{ LogRequet(); LogRespose(); } catch (Exception e) { Console.WriteLine("\nlog出错:" + e.Message); } } return(_response); }