36 lines
936 B
C#
36 lines
936 B
C#
|
using System;
|
|||
|
using ln.logging;
|
|||
|
namespace ln.http
|
|||
|
{
|
|||
|
public abstract class HttpRouter
|
|||
|
{
|
|||
|
public HttpRouter()
|
|||
|
{
|
|||
|
}
|
|||
|
|
|||
|
public abstract IHTTPResource FindResource(HttpRequest httpRequest);
|
|||
|
|
|||
|
public virtual HttpResponse Route(HttpRequest httpRequest)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
IHTTPResource resource = FindResource(httpRequest);
|
|||
|
return resource.GetResponse(httpRequest);
|
|||
|
} catch (Exception e)
|
|||
|
{
|
|||
|
Logging.Log(e);
|
|||
|
if (httpRequest != null)
|
|||
|
{
|
|||
|
HttpResponse httpResponse = new HttpResponse(httpRequest);
|
|||
|
httpResponse.StatusCode = 500;
|
|||
|
httpResponse.ContentWriter.WriteLine("500 Internal Server Error");
|
|||
|
|
|||
|
return httpResponse;
|
|||
|
}
|
|||
|
return null;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|