//http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 public void OnHeaderName(HttpMachine.HttpParser parser, string name) { if (Headers.ContainsKey(name.ToUpper())) { // Header Field Names are case-insensitive http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 _headerAlreadyExist = true; } _headerName = name.ToUpper(); }
public void OnHeaderValue(HttpMachine.HttpParser parser, string value) { if (_headerAlreadyExist) { // Join multiple message-header fields into one comma seperated list http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 Headers[_headerName] = $"{Headers[_headerName]}, {value}"; _headerAlreadyExist = false; } else { Headers[_headerName] = value; } }
public void OnHeadersEnd(HttpMachine.HttpParser parser) { //throw new NotImplementedException(); }