ln.http/ln.http/HttpVersion.cs

50 lines
1.1 KiB
C#

using System;
namespace ln.http;
[Flags]
public enum HttpVersion
{
None = 0,
HTTP10 = (1<<0), // HTTP/1.0
HTTP11 = (1<<1), // HTTP/1.1
HTTP2 = (1<<2), // HTTP/2.0
ALL = HTTP10 | HTTP11 | HTTP2
}
public static class HttpVersionSupport
{
public static string ToString(HttpVersion httpVersion)
{
switch (httpVersion)
{
case HttpVersion.None:
return "None";
case HttpVersion.ALL:
return "ALL";
case HttpVersion.HTTP2:
return "HTTP/2";
case HttpVersion.HTTP10:
return "HTTP/1.0";
case HttpVersion.HTTP11:
return "HTTP/1.1";
default:
throw new NotSupportedException();
}
}
public static HttpVersion Parse(string httpVersion)
{
switch (httpVersion)
{
case "HTTP/1.0":
return HttpVersion.HTTP10;
case "HTTP/1.1":
return HttpVersion.HTTP10;
default:
return HttpVersion.None;
}
}
}