public void OnHttpRequest(ReefHttpRequest requet, ReefHttpResponse response) { LOGGER.Log(Level.Info, string.Format(CultureInfo.CurrentCulture, "HelloHttpHandler OnHttpRequest: URL: {0}, QueryString: {1}, inputStream: {2}.", requet.Url, requet.Querystring, ByteUtilities.ByteArrarysToString(requet.InputStream))); response.Status = HttpStatusCode.OK; response.OutputStream = ByteUtilities.StringToByteArrays("Byte array returned from HelloHttpHandler in CLR!!!"); }
/// <summary> /// Called when receiving an http request from Java side /// </summary> /// <param name="httpMessage">The HTTP message.</param> public void OnNext(IHttpMessage httpMessage) { LOGGER.Log(Level.Info, "HttpHandler OnNext is called"); string requestString = httpMessage.GetRequestString(); if (requestString != null && requestString.Equals(SPEC)) { LOGGER.Log(Level.Info, "HttpHandler OnNext, requestString:" + requestString); LOGGER.Log(Level.Info, "HttpHandler OnNext, port number:" + httpServerPort.PortNumber); httpMessage.SetUriSpecification(GetAllSpecifications()); } else { LOGGER.Log(Level.Info, "HttpHandler OnNext, handling http request."); byte[] byteData = httpMessage.GetQueryReuestData(); AvroHttpRequest avroHttpRequest = AvroHttpSerializer.FromBytesWithJson(byteData); LOGGER.Log(Level.Info, string.Format(CultureInfo.CurrentCulture, "HttpHandler OnNext, requestData:", avroHttpRequest)); string spec = GetSpecification(avroHttpRequest.PathInfo); if (spec != null) { LOGGER.Log(Level.Info, "HttpHandler OnNext, target:" + spec); ReefHttpRequest request = ToHttpRequest(avroHttpRequest); foreach (var h in request.Header) { LOGGER.Log(Level.Info, string.Format(CultureInfo.CurrentCulture, "HttpRequest Header-key: {0}, value: {1}.", h.Key, h.Value)); } ReefHttpResponse response = new ReefHttpResponse(); IHttpHandler handler; eventHandlers.TryGetValue(spec.ToLower(CultureInfo.CurrentCulture), out handler); byte[] responseData; if (handler != null) { LOGGER.Log(Level.Info, "HttpHandler OnNext, get eventHandler:" + handler.GetSpecification()); handler.OnHttpRequest(request, response); responseData = response.OutputStream; } else { responseData = ByteUtilities.StringToByteArrays(string.Format(CultureInfo.CurrentCulture, "No event handler found at CLR side for {0}.", spec)); } httpMessage.SetQueryResponseData(responseData); } } }
public void OnHttpRequest(ReefHttpRequest requet, ReefHttpResponse response) { LOGGER.Log(Level.Info, "OnHttpRequest in DefaultHttpHandler is called."); response.Status = HttpStatusCode.OK; response.OutputStream = ByteUtilities.StringToByteArrays("Byte array returned from DefaultHttpHandler in CLR!!!"); }