private static int GetValueLength(string input, int startIndex, out StringSegment value) { var current = startIndex; current++; current += HttpTokenParsingRules.GetWhitespaceLength(input, current); var valueLength = HttpTokenParsingRules.GetTokenLength(input, current); if (valueLength == 0) { var result = HttpTokenParsingRules.GetQuotedStringLength(input, current, out valueLength); if (result != HttpParseResult.Parsed) { value = default(StringSegment); return(0); } value = new StringSegment(input, current + 1, valueLength - 2); } else { value = new StringSegment(input, current, valueLength); } current += valueLength; current += HttpTokenParsingRules.GetWhitespaceLength(input, current); return(current - startIndex); }