public HttpResponseHeader(string source) { _isBinary = false; _source = source; StringReader sreader = new StringReader(_source); try { if (ParseResponseCode(sreader.ReadLine()) == false) { _isParse = false; return; } else { _headers = HttpHeader.ParseHeader(sreader); if (_httpVersion == HTTP_VERTION.HTTP10) { if (_headers.Get(HTTP_HEADER_KEY.CONNECTION) != null) { if (_headers[HTTP_HEADER_KEY.CONNECTION] == HTTP_HEADER_VALUE.KEEPALLIVE) { _isKeepAllive = true; } } if (_headers.Get(HTTP_HEADER_KEY.PROXY_CONNECTION) != null) { if (_headers[HTTP_HEADER_KEY.PROXY_CONNECTION] == HTTP_HEADER_VALUE.KEEPALLIVE) { _isKeepAllive = true; } } } else { _isKeepAllive = true; if (_headers.Get(HTTP_HEADER_KEY.CONNECTION) != null) { if (_headers[HTTP_HEADER_KEY.CONNECTION] == HTTP_HEADER_VALUE.CLOSE) { _isKeepAllive = false; } } if (_headers.Get(HTTP_HEADER_KEY.PROXY_CONNECTION) != null) { if (_headers[HTTP_HEADER_KEY.PROXY_CONNECTION] == HTTP_HEADER_VALUE.CLOSE) { _isKeepAllive = false; } } } if (_headers.Get(HTTP_HEADER_KEY.TRANSFER_ENCODING) != null) { if (_headers[HTTP_HEADER_KEY.TRANSFER_ENCODING] == HTTP_HEADER_VALUE.CHUNKED) { _isChunked = true; } } else if (_headers.Get(HTTP_HEADER_KEY.CONTENT_LENGTH) != null) { _contentSize = Convert.ToInt32(_headers[HTTP_HEADER_KEY.CONTENT_LENGTH]); } } }catch { _isParse = false; return; } _isBinary = HttpHeader.CheckBinary(_headers); _isParse = true; }
public HttpRequestHeader(string source) { if (source.Length == 0) { _isData = false; return; } else { _isData = true; } _isBinary = false; _source = source; StringReader sreader = new StringReader(_source); try { if (ParseRequestMethod(sreader.ReadLine()) == false) { _isParse = false; return; } else { _headers = HttpHeader.ParseHeader(sreader); if (_httpVersion == HTTP_VERTION.HTTP10) { if (_headers.Get(HTTP_HEADER_KEY.CONNECTION) != null) { if (_headers[HTTP_HEADER_KEY.CONNECTION] == HTTP_HEADER_VALUE.KEEPALLIVE) { _isKeepAllive = true; } } if (_headers.Get(HTTP_HEADER_KEY.PROXY_CONNECTION) != null) { if (_headers[HTTP_HEADER_KEY.PROXY_CONNECTION] == HTTP_HEADER_VALUE.KEEPALLIVE) { _isKeepAllive = true; } } } else { _isKeepAllive = true; if (_headers.Get(HTTP_HEADER_KEY.CONNECTION) != null) { if (_headers[HTTP_HEADER_KEY.CONNECTION] == HTTP_HEADER_VALUE.CLOSE) { _isKeepAllive = false; } } if (_headers.Get(HTTP_HEADER_KEY.PROXY_CONNECTION) != null) { if (_headers[HTTP_HEADER_KEY.PROXY_CONNECTION] == HTTP_HEADER_VALUE.CLOSE) { _isKeepAllive = false; } } } if (_headers.Get(HTTP_HEADER_KEY.CONTENT_LENGTH) != null) { _contentSize = Convert.ToInt32(_headers[HTTP_HEADER_KEY.CONTENT_LENGTH]); } if (_headers.Get(HTTP_HEADER_KEY.HOST) != null) { _host = _headers[HTTP_HEADER_KEY.HOST]; if (_host.IndexOf(":") != -1) { string[] host = _host.Split(':'); _host = host[0]; _port = Convert.ToInt32(host[1]); } else { _host = _host; _port = Convert.ToInt32(HTTP_PORT.HTTP); } } } }catch { _isParse = false; return; } _isBinary = HttpHeader.CheckBinary(_headers); _isParse = true; }