public HttpClientRequest(HttpMethod method, string subQuery) { Method = method; this.Query = subQuery; Content = null; Deserializer = new AutoResponseDeserializer(); }
/// <exception cref="InvalidDataException"></exception> private IHttpResponse ToResponse(HttpClientRequest request, HttpWebResponse webResponse) { try { var responseHeaders = new Dictionary <string, string>(); foreach (var key in webResponse.Headers.AllKeys) { responseHeaders.Add(key, webResponse.Headers.Get(key)); } var responseInfo = new ResponseInfo(webResponse.ResponseUri, responseHeaders.ToArray(), webResponse.StatusCode); var stream = webResponse.GetResponseStream(); if (responseHeaders.ContainsKey(HttpHelper.ContentEncodingHeader)) { var encodingType = responseHeaders[HttpHelper.ContentEncodingHeader]; if (_decoders.ContainsKey(encodingType)) { stream = _decoders[encodingType].GetDecodingStream(stream); } } IResponseDeserializer deserializer; if ((int)webResponse.StatusCode < 200 || (int)webResponse.StatusCode >= 300) { deserializer = new AutoResponseDeserializer(); } else { deserializer = request.Deserializer; } var deserialized = deserializer.Deserialize(responseInfo, stream); return(deserialized); } catch (Exception e) { throw new InvalidDataException("Response deserialization error: " + e.Message, e); } }