Exemplo n.º 1
0
 static IWebHost CreateWebHost(InMemoryListenerFactory listenerFactory)
 {
     return
         (WebHost.CreateDefaultBuilder()
          .UseSetting("preventHostingStartup", "true")
          .UseKestrel(ko =>
     {
         ko.Listen(IPAddress.Loopback, ListenPort, listenOptions =>
         {
             listenOptions.UseHttps(CreateSelfSignedCert());
         });
     })
          .ConfigureServices(services =>
     {
         services.AddSingleton <IConnectionListenerFactory>(listenerFactory);
     })
          .ConfigureLogging(logging =>
     {
         logging.AddFilter("Microsoft.AspNetCore", LogLevel.Warning);
         //logging.AddFilter("Microsoft.AspNetCore", LogLevel.Trace);
     })
          .Configure(app =>
     {
         app.UseRouting().UseEndpoints(routes =>
         {
             routes.MapPost(ListenRoute, async ctx =>
             {
                 await ctx.Response.WriteAsync("ok").ConfigureAwait(false);
             });
         });
     })
          .Build());
 }
Exemplo n.º 2
0
 public void Setup()
 {
     _endpointUri     = new Uri(new Uri($"https://{ListenHost}:{ListenPort}/"), ListenRoute);
     _listenerFactory = new InMemoryListenerFactory();
     _client          = CreateHttpClient(_listenerFactory);
     _webHost         = CreateWebHost(_listenerFactory);
     _webHost.Start();
 }
Exemplo n.º 3
0
        static HttpClient CreateHttpClient(InMemoryListenerFactory listenerFactory)
        {
            Func <string, int, CancellationToken, ValueTask <Stream> > dialer = async(host, port, cancellationToken) =>
            {
                return(await listenerFactory.ConnectClientAsync(host, port, cancellationToken).ConfigureAwait(false));
            };

            var handler = new SocketsHttpHandler();

            handler.GetType().GetProperty("ConnectCallback").SetValue(handler, dialer);
            handler.SslOptions.RemoteCertificateValidationCallback = delegate { return(true); };

            var client = new HttpClient(handler);

            client.DefaultRequestHeaders.TryAddWithoutValidation("grpc-timeout", "15");
            client.DefaultRequestHeaders.TryAddWithoutValidation("grpc-encoding", "gzip");
            client.DefaultRequestHeaders.TryAddWithoutValidation("authorization", "Bearer y235.wef315yfh138vh31hv93hv8h3v");

            return(client);
        }
 public InMemoryListener(InMemoryListenerFactory factory, EndPoint endPoint)
 {
     _cancellationTokenSource = new CancellationTokenSource();
     _factory = factory;
     EndPoint = endPoint;
 }