0
点赞
收藏
分享

微信扫一扫

C# .NET 4.5 HTTP/2客户端代码

三千筱夜 2022-02-15 阅读 56
httpc#.net
        public class ForceHttp2Handler : DelegatingHandler
        {
            public ForceHttp2Handler(HttpMessageHandler innerHandler)
                : base(innerHandler)
            {
            }

            protected override Task<HttpResponseMessage> SendAsync(
                HttpRequestMessage request, CancellationToken cancellationToken)
            {
                request.Version = new Version(2, 0);
                return base.SendAsync(request, cancellationToken);
            }
        }

        public string HTTPGet(string url)
        {
            using (var client = new HttpClient(new ForceHttp2Handler(new WinHttpHandler())))
            {
                var message = new HttpRequestMessage(HttpMethod.Get, url);
                var html = "";
                var response = client.SendAsync(message).Result;
                if (response.IsSuccessStatusCode)
                {
                    html = response.Content.ReadAsStringAsync().Result;
                }
                return html;
            }
        }
        public string HTTPPost(string url,string data)
        {
            using (var client = new HttpClient(new ForceHttp2Handler(new WinHttpHandler())))
            {
                var message = new HttpRequestMessage(HttpMethod.Post, url);
                message.Content = new StringContent(data, Encoding.UTF8, "application/json");
                var html = "";
                var response = client.SendAsync(message).Result;
                if (response.IsSuccessStatusCode)
                {
                    html = response.Content.ReadAsStringAsync().Result;
                }
                return html;
            }
        }

 .NET Core直接配置请求的版本即可,以上代码为.net framework4.5及以上使用,根据实际需要对以上代码修改即可。

举报

相关推荐

0 条评论