public HttpHandlerContext(Server server, HttpRequestProcessor.Host host, Connection connection, IIdentity identity) { Server = server; Host = host; Connection = connection; Identity = identity; }
public void Init(string username, string password, LogLevel level = LogLevel.None) { EscavadorEndPoints.UserName = username; EscavadorEndPoints.Password = password; log = new DebugLogger(level); processor = new HttpRequestProcessor(log, ref client); }
public void Ping() { var request = CreateCommandRequest(eRequestCommand.Ping, "FolderSync"); var requestProcessor = new HttpRequestProcessor(request); var response = requestProcessor.Process(); Assert.IsNotNull(response); Assert.IsTrue(response.IsSuccessStatusCode); Assert.IsNotNull(response.Content); }
public void GetItemEstimate_Success() { var request = CreateCommandRequest(eRequestCommand.GetItemEstimate, "GetItemEstimate"); var requestProcessor = new HttpRequestProcessor(request); var response = requestProcessor.Process(); Assert.IsNotNull(response); Assert.IsTrue(response.IsSuccessStatusCode); Assert.IsNotNull(response.Content); }
public BlobsExtensionConfigProvider( BlobServiceClientProvider blobServiceClientProvider, BlobTriggerAttributeBindingProvider triggerBinder, IContextGetter <IBlobWrittenWatcher> contextAccessor, INameResolver nameResolver, IConverterManager converterManager, BlobTriggerQueueWriterFactory blobTriggerQueueWriterFactory, HttpRequestProcessor httpRequestProcessor, ILoggerFactory loggerFactory) : this(blobServiceClientProvider, triggerBinder, contextAccessor, nameResolver, converterManager, blobTriggerQueueWriterFactory, httpRequestProcessor, null, loggerFactory) { }
private void StartWebServer() { var port = AppConfig.GetIntParam("WebServer.Port", 8093); try { webServer = new HttpRequestProcessor(); webServer.Start(port, DeliveryWebServer.Instance.ProcessHttpRequest, BaseWebServer.needAuthentication); Logger.InfoFormat("Старт web-сервера - ОК ({0})", port); } catch (Exception ex) { Logger.ErrorFormat("Ошибка старта веб-сервера (порт {0}): {1}", port, ex); webServer = null; } }
public void Options_Success() { var url = string.Format("{0}Microsoft-Server-ActiveSync", hostAddress); var request = new HttpRequestMessage { RequestUri = new Uri(url), Method = HttpMethod.Options }; var requestProcessor = new HttpRequestProcessor(request); var response = requestProcessor.Process(); Assert.IsNotNull(response); Assert.IsTrue(response.Headers.Contains("MS-ASProtocolVersions")); Assert.IsTrue(response.Headers.Contains("MS-ASProtocolCommands")); }
public BlobsExtensionConfigProvider( BlobServiceClientProvider blobServiceClientProvider, BlobTriggerAttributeBindingProvider triggerBinder, IContextGetter <IBlobWrittenWatcher> contextAccessor, INameResolver nameResolver, IConverterManager converterManager, BlobTriggerQueueWriterFactory blobTriggerQueueWriterFactory, HttpRequestProcessor httpRequestProcessor, ILoggerFactory loggerFactory) { _blobServiceClientProvider = blobServiceClientProvider; _triggerBinder = triggerBinder; _blobWrittenWatcherGetter = contextAccessor; _nameResolver = nameResolver; _converterManager = converterManager; _blobTriggerQueueWriterFactory = blobTriggerQueueWriterFactory; _httpRequestProcessor = httpRequestProcessor; _logger = loggerFactory.CreateLogger <BlobsExtensionConfigProvider>(); }
/// <inheritdoc/> public async Task HandleAsync(string deviceId, string moduleId, byte[] payload, IDictionary <string, string> properties, Func <Task> checkpoint) { if (!properties.TryGetValue("content-type", out var type) && !properties.TryGetValue("iothub-content-type", out type)) { throw new ArgumentException("Missing content type in event."); } // Get message id and correlation id from content type var typeParsed = type.Split("_", StringSplitOptions.RemoveEmptyEntries); if (typeParsed.Length != 2 || !int.TryParse(typeParsed[1], out var messageId)) { return; } var requestId = typeParsed[0]; HttpRequestProcessor processor; if (messageId == 0) { var request = JsonConvertEx.DeserializeObject <HttpTunnelRequestModel>( Encoding.UTF8.GetString(payload)); processor = new HttpRequestProcessor(this, deviceId, moduleId, requestId, request, null); if (request.Chunks != 0) { if (!_requests.TryAdd(requestId, processor)) { throw new InvalidOperationException( $"Adding request {requestId} failed."); } // Need more return; } // Complete request } else if (_requests.TryGetValue(requestId, out processor)) { if (!processor.AddChunk(messageId, payload)) { // Need more return; } // Complete request _requests.TryRemove(requestId, out _); } else { // Timed out or expired _logger.Debug("Request from {deviceId} {moduleId} " + "with id {requestId} timed out - give up.", deviceId, moduleId, requestId); return; } // Complete request try { await processor.CompleteAsync(); await Try.Async(() => checkpoint?.Invoke()); } catch (Exception ex) { _logger.Error(ex, "Failed to complete request from {deviceId} {moduleId} " + "with id {requestId} - giving up.", deviceId, moduleId, requestId); } }
/// <inheritdoc/> public async Task <bool> HandleEventAsync(string deviceId, string moduleId, byte[] payload, IDictionary <string, string> properties) { if (!properties.TryGetValue("content-type", out var type) && !properties.TryGetValue("iothub-content-type", out type)) { _logger.Error( "Missing content type in tunnel event from {deviceId} {moduleId}.", deviceId, moduleId); return(true); } // Get message id and correlation id from content type var typeParsed = type.Split("_", StringSplitOptions.RemoveEmptyEntries); if (typeParsed.Length != 2 || !int.TryParse(typeParsed[1], out var messageId)) { _logger.Error("Bad content type {contentType} in tunnel event" + " from {deviceId} {moduleId}.", type, deviceId, moduleId); return(true); } var requestId = typeParsed[0]; HttpRequestProcessor processor; if (messageId == 0) { try { var chunk0 = DeserializeRequest0(payload, out var request, out var chunks); processor = new HttpRequestProcessor(this, deviceId, moduleId, requestId, request, chunks, chunk0, null); if (chunks != 0) // More to follow? { if (!_requests.TryAdd(requestId, processor)) { throw new InvalidOperationException( $"Adding request {requestId} failed."); } // Need more return(false); } } catch (Exception ex) { _logger.Error(ex, "Failed to parse tunnel request from {deviceId} " + "{moduleId} with id {requestId} - giving up.", deviceId, moduleId, requestId); return(true); } // Complete request } else if (_requests.TryGetValue(requestId, out processor)) { if (!processor.AddChunk(messageId, payload)) { // Need more return(false); } // Complete request _requests.TryRemove(requestId, out _); } else { // Timed out or expired _logger.Debug("Request from {deviceId} {moduleId} " + "with id {requestId} timed out - give up.", deviceId, moduleId, requestId); return(true); } // Complete request try { await processor.CompleteAsync(); } catch (Exception ex) { _logger.Error(ex, "Failed to complete request from {deviceId} {moduleId} " + "with id {requestId} - giving up.", deviceId, moduleId, requestId); } return(true); }
public void Start(string ip, UInt16 port, uint readBufferSize, uint timeout, X509Certificate2 certificate, HttpRequestProcessor httpRequestHandler, ResponseMaker internalServerError, LogManager logger) { if (ConnectionAcceptor == null) { ConnectionAcceptor = new TcpListener(IPAddress.Parse(ip), port); } if (Sessions == null) { Sessions = new ConcurrentDictionary <ulong, Session>(); } this.ReadBufferSize = readBufferSize; this.Timeout = timeout; this.HttpRequestHandler = httpRequestHandler; this.GetInternalServerError = internalServerError; this.Certificate = certificate; this.Logger = logger; ConnectionAcceptor.Start(); ConnectionAcceptor.BeginAcceptTcpClient(new AsyncCallback(OnAccept), this.ConnectionAcceptor); }
public void Start(string ip, UInt16 port, uint readBufferSize, uint timeout, HttpRequestProcessor httpRequestHandler, ResponseMaker internalServerError, LogManager logger) { this.Start(ip, port, readBufferSize, timeout, null, httpRequestHandler, internalServerError, logger); }