1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
using Microsoft.AspNetCore.Hosting; //IWebHostBuilder using Microsoft.AspNetCore.Builder; //IApplicationBuilder using Microsoft.AspNetCore.Http; //WriteAsync using Microsoft.AspNetCore; //webHost using Microsoft.Extensions.Logging;//ILoggerFactory using Microsoft.Extensions.DependencyInjection; // IServiceCollection using Microsoft.Net.Http.Headers; using System.Reflection; //List using System; using System.Collections.Generic; //Type using System.Linq; //Where namespace WebApplication1 { public class Startup { public Startup(IHostingEnvironment env, ILoggerFactory logger) { //These are two services available at constructor } public void ConfigureServices(IServiceCollection services) { //This is the only service available at ConfigureServices } private List<FieldInfo> GetConstants(Type type) { FieldInfo[] fieldInfos = type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy); return fieldInfos.Where(fi => fi.IsLiteral && !fi.IsInitOnly).ToList(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory logger) { app.Run(async context => { context.Response.Headers.Add(HeaderNames.ContentType, "text/html"); await context.Response.WriteAsync("<h1>Request Headers from Microsoft.Net.Http.Headers.HeaderNames</h1>"); await context.Response.WriteAsync("<ul>"); foreach (var h in GetConstants(typeof(HeaderNames))) { await context.Response.WriteAsync($"<li>{h.Name} = {h.GetValue(h)}</li>"); } await context.Response.WriteAsync("</ul>"); }); } } public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseUrls("http://*:1000", "http://*:5000") .UseEnvironment("Development"); //You can change this to "Production" to use StartupProduction } } |
결과 :
Request Headers from Microsoft.Net.Http.Headers.HeaderNames
•Accept = Accept
•AcceptCharset = Accept-Charset
•AcceptEncoding = Accept-Encoding
•AcceptLanguage = Accept-Language
•AcceptRanges = Accept-Ranges
•AccessControlAllowCredentials = Access-Control-Allow-Credentials
•AccessControlAllowHeaders = Access-Control-Allow-Headers
•AccessControlAllowMethods = Access-Control-Allow-Methods
•AccessControlAllowOrigin = Access-Control-Allow-Origin
•AccessControlExposeHeaders = Access-Control-Expose-Headers
•AccessControlMaxAge = Access-Control-Max-Age
•AccessControlRequestHeaders = Access-Control-Request-Headers
•AccessControlRequestMethod = Access-Control-Request-Method
•Age = Age
•Allow = Allow
•Authority = :authority
•Authorization = Authorization
•CacheControl = Cache-Control
•Connection = Connection
•ContentDisposition = Content-Disposition
•ContentEncoding = Content-Encoding
•ContentLanguage = Content-Language
•ContentLength = Content-Length
•ContentLocation = Content-Location
•ContentMD5 = Content-MD5
•ContentRange = Content-Range
•ContentSecurityPolicy = Content-Security-Policy
•ContentSecurityPolicyReportOnly = Content-Security-Policy-Report-Only
•ContentType = Content-Type
•Cookie = Cookie
•Date = Date
•ETag = ETag
•Expires = Expires
•Expect = Expect
•From = From
•Host = Host
•IfMatch = If-Match
•IfModifiedSince = If-Modified-Since
•IfNoneMatch = If-None-Match
•IfRange = If-Range
•IfUnmodifiedSince = If-Unmodified-Since
•LastModified = Last-Modified
•Location = Location
•MaxForwards = Max-Forwards
•Method = :method
•Origin = Origin
•Path = :path
•Pragma = Pragma
•ProxyAuthenticate = Proxy-Authenticate
•ProxyAuthorization = Proxy-Authorization
•Range = Range
•Referer = Referer
•RetryAfter = Retry-After
•Scheme = :scheme
•Server = Server
•SetCookie = Set-Cookie
•Status = :status
•StrictTransportSecurity = Strict-Transport-Security
•TE = TE
•Trailer = Trailer
•TransferEncoding = Transfer-Encoding
•Upgrade = Upgrade
•UserAgent = User-Agent
•Vary = Vary
•Via = Via
•Warning = Warning
•WebSocketSubProtocols = Sec-WebSocket-Protocol
•WWWAuthenticate = WWW-Authenticate