首页 > 其他分享 >【Azure App Service】验证App Service接受HTTP 2.0请求

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

时间:2024-04-08 20:59:34浏览次数:16  
标签:HTTP Console Service App Version var new 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

 

 

 

标签:HTTP,Console,Service,App,Version,var,new,2.0
From: https://www.cnblogs.com/lulight/p/18122526

相关文章

  • http免费升级https
    背景:首先我们需要了解HTTPS并不是一个全新的协议,而是在HTTP的基础上,通过SSL增加了一层加密协议,从而大大增加了HTTP协议的安全性。HTTPS主要由两部分组成:HTTP(超文本传输协议)+SSL/TLS(安全协议),也就是在HTTP上又加了一层处理加密信息的模块。目录背景:http的概念和......
  • uniapp 微信小程序自定义tabbar
    为什么要自定义?自定义tabbar可做事件拦截,可自定义样式等。第一步:隐藏原生tabbar第二步:page.json中定义路径 第三步:创建自定义组件目录 代码<template> <viewclass='tabbar'> <view class='tab' v-for="(item,index)intabbarList" :key='index......
  • uniapp 小程序接口调用封装
    目的:接口封装让代码更简洁,操作更方便,出错率更低。第一步:建立引用目录 第二步:封装request.jsconstBASE_URL="http://"//公共请求头地址constrequest=(url,method,data)=>{ returnnewPromise((resolve,reject)=>{ uni.request({ url:BASE_URL+url,......
  • Xcode15打包导致:App Store/TestFlight,iOS 13以下安装崩溃问题处理
     热烈欢迎,请直接点击!!!进入博主AppStore主页,下载使用各个作品!!!注:博主将坚持每月上线一个新app!!Xcode15打包导致:AppStore/TestFlight,iOS13以下安装崩溃问题处理。1、项目 -> BuildSettings->ALL->OtherLinkerFlags添加:-ld64。2、若使用Cocoapods,选择Pod项目,在Build......
  • apache-HttpClient4.5
    packagecom.yonyou.ucf.mdf.sample.utils;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;importcom.fasterxml.jackson.core.type.TypeReference;importcom.fasterxml.jackson.databind.ObjectMapper;importlombok.extern.slf4j.Slf4j;......
  • 并发工具类:ExecutorService、Future、CountDownLatch与Semaphore(第一章)
    目录一、引言ExecutorService与Future:优雅的任务提交与结果获取CountDownLatch:精确的线程同步点Semaphore:资源访问的流量控制器总结二、ExecutorService定义与接口概述生命周期管理高级特性与最佳实践使用ExecutorService时的常见注意事项与最佳实践建议一、引言......
  • mapper里不等号
    在MyBatis中,Mapper接口中不使用<>不等号进行SQL语句的编写,而是使用其他方式表示不等于。使用<和>进行转义:<转义为<>转义为>使用!=表示不等于。以下是一个Mapper接口的例子,展示了如何在select语句中使用不等号:<!--MapperXML--><mappernamespace="com.example.mappe......
  • App备案-iOS证书 Distribution Managed 公钥及证书SHA-1指纹的获取方法
    IOS平台App备案,apple不提供云管理式证书的下载,也就无法获取公钥及证书SHA-1指纹。  已经上架的应用不想重新打包发布的话。可以通过以下方法获取证书Certificate:访问AppleDeveloper(简体中文),使用App对应的iOS开发者账号登录。 苹果开发者账号地址 https://developer.......
  • JavaScript之applye、bind和call方法详解
    QuestionQ1apply()、bind()和call()方法的区别在哪?Q2apply()和call()的应用场景Q3apply()、bind()和call()方法手写实现逻辑来源继承自Function.prototype,属于实例方法console.log(Function.prototype.hasOwnProperty('call')) //trueconsole.log(Functio......
  • Java 方法真人游戏网站app
    在前面几个章节中我们经常使用到 System.out.println(),那么它是什么呢?println()是一个方法。System是系统类。out是标准输出对象。这句话的用法是调用系统类System中的标准输出对象out中的方法println()。那么什么是方法呢?Java方法是语句的集合,它们在......