【Azure App Service】验证App Service接受HTTP 2.0请求

简介: 【Azure App Service】验证App Service接受HTTP 2.0请求

问题描述

在App Service中启用了HTTP 2.0后,如何来验证它可以正常接受HTTP 2.0的请求呢?

问题解答

如果直接使用浏览器访问,无法直接判断出来是否使用 HTTP 2.0,所以本文中使用.NET Console代码来测试HTTP 2.0.

第一步:打开Visual Studio 2022,创建一个.NET Console Application

第二步:添加 HttpClient() 代码,并设置 HttpRequestMessage 的 Version 为2.0

Console.WriteLine("Hello, World!");
var client = new HttpClient() { BaseAddress = new Uri("https://lbphptest01.chinacloudsites.cn/") };
Console.WriteLine("Sending HTTP 2.0 Request.");
// HTTP/2 request
using (var request = new HttpRequestMessage(HttpMethod.Get, "/") { Version = new Version(2, 0) })
using (var response = await client.SendAsync(request))
Console.WriteLine(response);

注意:也可以直接指定 HTTPClient 类 DefaultRequestVersion 属性值

var SecondRequest = new HttpClient()
{
    BaseAddress = new Uri("https://lbphptest01.chinacloudsites.cn/"),
    DefaultRequestVersion = new Version(2, 0)
};
// HTTP/2 is default
using (var response = await SecondRequest.GetAsync("/"))
    Console.WriteLine(response);

 

第三步:运行代码,查看结果 HttpResponse Version 为2.0

 

附录:示例代码

// .NET Console App的代码使用的.NET 8 Framework并且使用顶级语句(top-level statements)
Console.WriteLine("Hello, World!");
var client = new HttpClient() { BaseAddress = new Uri("https://xxx.chinacloudsites.cn/") };
Console.WriteLine("#1: Sending HTTP 2.0 Request By HttpRequestMessage Version");
// HTTP/2 request
using (var request = new HttpRequestMessage(HttpMethod.Get, "/") { Version = new Version(2, 0) })
using (var response = await client.SendAsync(request))
Console.WriteLine(response);
Console.WriteLine("#2: Sending HTTP 2.0 Request By HttpClient DefaultRequestVersion");
var SecondRequest = new HttpClient()
{
    BaseAddress = new Uri("https://xxx.chinacloudsites.cn/"),
    DefaultRequestVersion = new Version(2, 0)
};
// HTTP/2 is default
using (var response = await SecondRequest.GetAsync("/"))
    Console.WriteLine(response);
Console.Read();

 

参考资料

Send HTTP 2.0 Request to App Service using C# : https://techcommunity.microsoft.com/t5/apps-on-azure-blog/send-http-2-0-request-to-app-service-using-c/ba-p/4034469

HttpClient Class:https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=net-8.0

HttpClient.DefaultRequestVersion Property : https://learn.microsoft.com/en-us/dotnet/api/system.net.http.httpclient.defaultrequestversion?view=net-8.0#system-net-http-httpclient-defaultrequestversion

 

 

相关文章
|
7月前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
726 130
|
8月前
|
存储 安全 Linux
【Azure App Service】在App Service中查看CA证书
在 Azure App Service 中,使用自签名或私有 CA 证书的远程服务可能会导致 SSL 握手失败。解决方法包括使用受信任 CA 签发的证书,或通过 App Service Environment 加载自定义根证书,实现安全连接。
183 4
|
6月前
|
Java 应用服务中间件 API
【App Service】部署War包到Azure云上遇404错误
Java应用部署至Azure App Service for Windows后报404,本地运行正常。经排查,日志提示类文件版本不兼容:应用由Java 17(class file version 61.0)编译,但环境仅支持到Java 11(55.0)。错误根源为Java版本不匹配。调整App Service的Java版本至17后问题解决,成功访问接口。
509 2
|
6月前
|
存储 Linux 网络安全
【Azure App Service】Root CA on App Service
Azure App Service for Windows应用连接外部SSL服务时,需确保其证书由受信任的根CA颁发。多租户环境下无法修改根证书,但ASE(单租户)可加载自定义CA证书。若遇证书信任问题,可更换为公共CA证书或将应用部署于ASE并导入私有CA证书。通过Kudu的PowerShell(Windows)或SSH(Linux)可查看当前受信任的根证书列表。
146 13
|
7月前
|
网络协议 Java Linux
【App Service】在Azure环境中如何查看App Service实例当前的网络连接情况呢?
在 Azure App Service(Windows 和 Linux)中部署应用时,分析网络连接状态是排查异常、验证端口监听及确认后端连接的关键。本文介绍如何在 Linux 环境中使用 `netstat` 命令查看特定端口(如 443、3306、6380)的连接情况,并解析输出结果。同时说明在 Windows App Service 中 `netstat` 被禁用的情况下,如何通过门户抓包等替代方法进行网络诊断。内容涵盖命令示例、操作步骤及附录说明,帮助开发者快速掌握云环境中的网络分析技巧。
188 11
|
8月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
399 5
|
8月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
741 2
|
Web App开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
TCP洪水攻击(SYN Flood)的诊断和处理 Posted by  海涛  on 2013 年 7 月 11 日 Tweet1 ​1. SYN Flood介绍 前段时间网站被攻击多次,其中最猛烈的就是TCP洪水攻击,即SYN Flood。
1216 0
|
Web App开发 存储 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
      前段时间公司hadoop集群宕机,发现是namenode磁盘满了, 清理出部分空间后,重启集群时,重启失败。 又发现集群Secondary namenode 服务也恰恰坏掉,导致所有的操作log持续写入edits.new 文件,等集群宕机的时候文件大小已经达到了丧心病狂的70G+..重启集群报错 加载edits文件失败。
1101 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Datanode的日志中看到: 10/12/14 20:10:31 INFO hdfs.DFSClient: Could not obtain block blk_XXXXXXXXXXXXXXXXXXXXXX_YYYYYYYY from any node: java.
821 0

热门文章

最新文章