Ejemplo n.º 1
0
        /// <summary>
        /// Creates a new instance of <see cref="GrpcWebHandler"/>.
        /// </summary>
        /// <param name="mode">The gRPC-Web mode to use when making gRPC-Web calls.</param>
        /// <param name="httpVersion">The HTTP version to used when making gRPC-Web calls.</param>
        /// <param name="innerHandler">The inner handler which is responsible for processing the HTTP response messages.</param>
        public GrpcWebHandler(GrpcWebMode mode, Version httpVersion, HttpMessageHandler innerHandler) : base(innerHandler)
        {
            if (httpVersion == null)
            {
                throw new ArgumentNullException(nameof(httpVersion));
            }

            _mode        = mode;
            _httpVersion = httpVersion;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a new instance of <see cref="GrpcWebHandler"/>.
        /// </summary>
        /// <param name="mode">The gRPC-Web mode to use when making gRPC-Web calls.</param>
        /// <param name="httpVersion">The HTTP version to used when making gRPC-Web calls.</param>
        public GrpcWebHandler(GrpcWebMode mode, Version httpVersion)
        {
            if (httpVersion == null)
            {
                throw new ArgumentNullException(nameof(httpVersion));
            }

            _mode        = mode;
            _httpVersion = httpVersion;
        }
Ejemplo n.º 3
0
        public GrpcWebRequestContent(HttpContent inner, GrpcWebMode mode)
        {
            _inner = inner;
            _mode  = mode;
            foreach (var header in inner.Headers)
            {
                Headers.TryAddWithoutValidation(header.Key, header.Value);
            }

            Headers.ContentType = (mode == GrpcWebMode.GrpcWebText)
                ? GrpcWebProtocolConstants.GrpcWebTextHeader
                : GrpcWebProtocolConstants.GrpcWebHeader;
        }
        public GrpcWebResponseContent(HttpContent inner, GrpcWebMode mode, HttpHeaders responseTrailers)
        {
            _inner            = inner;
            _mode             = mode;
            _responseTrailers = responseTrailers;

            foreach (var header in inner.Headers)
            {
                Headers.TryAddWithoutValidation(header.Key, header.Value);
            }

            Headers.ContentType = GrpcWebProtocolConstants.GrpcHeader;
        }
Ejemplo n.º 5
0
        private static bool IsMatchingResponseContentType(GrpcWebMode mode, string?contentType)
        {
            if (mode == Web.GrpcWebMode.GrpcWeb)
            {
                return(CommonGrpcProtocolHelpers.IsContentType(GrpcWebProtocolConstants.GrpcWebContentType, contentType));
            }

            if (mode == Web.GrpcWebMode.GrpcWebText)
            {
                return(CommonGrpcProtocolHelpers.IsContentType(GrpcWebProtocolConstants.GrpcWebTextContentType, contentType));
            }

            return(false);
        }
Ejemplo n.º 6
0
        public static ClientCallsFactory ForAspNetHost(GrpcWebMode mode)
        {
            Func <ChannelBase> channelFactory = () =>
            {
                var options = new GrpcChannelOptions
                {
                    DisposeHttpClient = true,
                    HttpHandler       = new GrpcWebHandler(mode, new HttpClientHandler())
                    {
                        HttpVersion = System.Net.HttpVersion.Version11
                    }
                };

                return(GrpcChannel.ForAddress(Hosts.ServerAspNetHostHttp1, options));
            };

            return(new ClientCallsFactory(channelFactory));
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Creates a new instance of <see cref="GrpcWebHandler"/>.
 /// </summary>
 /// <param name="mode">The gRPC-Web mode to use when making gRPC-Web calls.</param>
 /// <param name="innerHandler">The inner handler which is responsible for processing the HTTP response messages.</param>
 public GrpcWebHandler(GrpcWebMode mode, HttpMessageHandler innerHandler) : base(innerHandler)
 {
     GrpcWebMode = mode;
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Creates a new instance of <see cref="GrpcWebHandler"/>.
 /// </summary>
 /// <param name="mode">The gRPC-Web mode to use when making gRPC-Web calls.</param>
 public GrpcWebHandler(GrpcWebMode mode)
 {
     GrpcWebMode = mode;
 }