public void ParseLineAsciiStringCustomCodeAndPhrase()
        {
            HttpResponseStatus customStatus = HttpResponseStatus.ParseLine(new AsciiString("612 FOO"));

            Assert.Equal(612, customStatus.Code);
            Assert.Equal("FOO", customStatus.ReasonPhrase);
        }
Esempio n. 2
0
        /// <summary>
        /// Apply HTTP/2 rules while translating status code to <see cref="HttpResponseStatus"/>
        /// </summary>
        /// <param name="status">The status from an HTTP/2 frame</param>
        /// <returns>The HTTP/1.x status</returns>
        /// <exception cref="Http2Exception">If there is a problem translating from HTTP/2 to HTTP/1.x</exception>
        public static HttpResponseStatus ParseStatus(ICharSequence status)
        {
            HttpResponseStatus result = null;

            try
            {
                result = HttpResponseStatus.ParseLine(status);
                if (result == HttpResponseStatus.SwitchingProtocols)
                {
                    ThrowHelper.ThrowConnectionError_InvalidHttp2StatusCode(result.Code);
                }
            }
            catch (Http2Exception)
            {
                throw;
            }
            catch (Exception t)
            {
                ThrowHelper.ThrowConnectionError_UnrecognizedHttpStatusCode(t, status);
            }
            return(result);
        }
 public void ParseLineAsciiStringMalformedCodeWithPhrase()
 {
     Assert.Throws <ArgumentException>(() => HttpResponseStatus.ParseLine(new AsciiString("200a foo")));
 }
        public void ParseLineAsciiStringCustomCode()
        {
            HttpResponseStatus customStatus = HttpResponseStatus.ParseLine(new AsciiString("612"));

            Assert.Equal(612, customStatus.Code);
        }
 public void ParseLineAsciiStringCodeAndPhrase()
 {
     Assert.Same(HttpResponseStatus.OK, HttpResponseStatus.ParseLine(new AsciiString("200 OK")));
 }
 public void ParseLineAsciiStringJustCode()
 {
     Assert.Same(HttpResponseStatus.OK, HttpResponseStatus.ParseLine(new AsciiString("200")));
 }
 public void ParseLineStringMalformedCode()
 {
     Assert.Throws <ArgumentException>(() => HttpResponseStatus.ParseLine("200a"));
 }