private IEnumerable <Envelope> CreateNewItemsFromContext(HttpListenerContext context) { try { var request = context.Request; var content = request.GetContent(); if (!string.IsNullOrWhiteSpace(request.Headers["Content-Encoding"]) && string.Equals("gzip", request.Headers["Content-Encoding"], StringComparison.OrdinalIgnoreCase)) { content = Decompress(content); } Trace.TraceInformation("=>\n"); Trace.TraceInformation("Item received: " + content); Trace.TraceInformation("<=\n"); return(TelemetryItemFactory.GetTelemetryItems(content)); } finally { context.Response.Close(); } }
private IEnumerable <Envelope> CreateNewItemsFromContext(HttpListenerContext context) { try { var request = context.Request; var content = request.GetContent(); if (!string.IsNullOrWhiteSpace(request.Headers["Content-Encoding"]) && string.Equals("gzip", request.Headers["Content-Encoding"], StringComparison.OrdinalIgnoreCase)) { content = Decompress(content); } Trace.TraceInformation("=>\n"); Trace.TraceInformation("Item received: " + content); Trace.TraceInformation("<=\n"); // Validating each package takes too much time, check only first one that have dependency data if (this.validatedPackages == 0 && content.Contains("RemoteDependency")) { try { this.ValidateItems(content); ++this.validatedPackages; } catch (TaskCanceledException) {} } return(TelemetryItemFactory.GetTelemetryItems(content)); } finally { context.Response.Close(); } }
/// <summary> /// Call back when incoming request is received /// </summary> /// <param name="request">incoming request</param> /// <param name="response">response to be sent back to invoker</param> private void RouteRequest(HttpListenerRequest request, HttpListenerResponse response) { var content = request.GetContent(); if (!string.IsNullOrWhiteSpace(request.Headers["Content-Encoding"]) && string.Equals("gzip", request.Headers["Content-Encoding"], StringComparison.OrdinalIgnoreCase)) { content = Decompress(content); } this.receivedDataItems.AddRange(TelemetryItemFactory.GetTelemetryItems(content)); //var stringReader = new StringReader(content); //var reader = new JsonTextReader(stringReader); //var sr = new JsonSerializer(); //var objectItem = (JArray)sr.Deserialize(reader, typeof(JArray)); var buff = Encoding.UTF8.GetBytes("<html><body>Hello from HttpListener.</body></html>"); // Set up the response object response.ContentType = "text/html"; response.ContentLength64 = buff.Length; response.StatusCode = 200; // HTTP "OK" // Write the response. var strm = response.OutputStream; strm.Write(buff, 0, buff.Length); // close the stream. strm.Close(); Trace.TraceInformation(this.listenerUrl + " Request content: " + content); }