void Awake() { HttpResponseBehaviour[] behaviours = GetComponents <HttpResponseBehaviour>(); foreach (var behaviour in behaviours) { responders[behaviour.Name] = behaviour; object[] result = behaviour.GetType().GetCustomAttributes(typeof(FileResponderAttribute), false); if (result != null && result.Length == 1) { fileResponder = behaviour; } } }
public string SendResponse(HttpListenerRequest request) { // http://localhost:8080/mygame/htdocs // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXhtdocs string entryPoint = request.Url.AbsoluteUri.Substring(entryPointUrl.Length); HttpResponseBehaviour responder = null; if (responders.TryGetValue(entryPoint, out responder)) { return(responder.GetResponse(request)); } else if (entryPoint.EndsWith(".html") || entryPoint.EndsWith(".htm")) { if (fileResponder != null) { return(fileResponder.GetResponse(request)); } } return(string.Format("<HTML><BODY>Invalid entry point. Unknown API call {0}<br>{1}</BODY></HTML>", entryPoint, DateTime.Now)); }