如何在 Android 设备上将 http/2 与 Okhttp 一起使用?

2023-12-29

我正在测试一个支持 HTTP/2 的网站,像这样 https://www.h2check.org/#google.it, 我尝试使用 okhttp 发送请求:

OkHttpClient okHttpClient = new OkHttpClient();

Request request = new Request.Builder()
        .url("https://www.google.it")
        .build();


okHttpClient.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Request request, IOException e) {
        e.printStackTrace();
    }

    @Override
    public void onResponse(Response response) throws IOException {
        Log.d("TestHttp", "OkHttp-Selected-Protocol: " + response.header("OkHttp-Selected-Protocol"));
        Log.d("TestHttp", "Response code is " + response.code());
    }
});

在日志中我得到了这样的内容:

OkHttp-Selected-Protocol: http/1.1

okhttpClient选择使用http/1.1,如何强制它使用HTTP/2?


Okhttp 2.5+ 仅通过 ALPN 支持 5.0+ 以上的 http/2。

但您可以修改源代码以通过NPN支持http/2 4.0+以上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 设备上将 http/2 与 Okhttp 一起使用? 的相关文章

  • gradle更新后无法找到方法(无法编译项目)

    我尝试将项目中的 gradle 版本更新为 4 1 milestone 1 以下这些说明 https developer android com studio build gradle plugin 3 0 0 migration html
  • 如何获取每个StorageVolume的可用大小和总大小?

    背景 谷歌 悲伤 计划破坏存储权限 https www xda developers com android q storage access framework scoped storage 这样应用程序将无法使用标准文件 API 和文件
  • Android短音的正确播放方法?

    我正在创建一个应用程序 屏幕上将有多个图像 这些图像将是按钮 点击时会播放短促的声音 我对此进行了研究 只能找到我当前用来播放声音的方法 这似乎根本没有响应 我希望声音能够快速播放并且能够响应多次快速点击 我不确定这在 Android 中是
  • Cheesesquare:enterAlways 会产生错误的布局

    Adding enterAlways到 Cheesesquare 演示的滚动标志
  • Xamarin Android Webview Javascript

    我正在尝试通过 Xamarin for Android 创建一个移动应用程序 它有一个显示网站的 WebView 问题是正常按钮会触发 但 javascript 事件不会触发 我已经启用了 Javascript 但没有运气 如何在 Andr
  • 从响应中获取标头(Retrofit / OkHttp 客户端)

    我正在使用 Retrofit 与 OkHttp 客户端和 Jackson 进行 Json 序列化 并希望获取响应的标头 我知道我可以扩展 OkClient 并拦截它 但这发生在反序列化过程开始之前 我基本上需要的是获取标头以及反序列化的 J
  • Android Studio:XML 布局中的“包装在容器中”

    编辑 XML 布局文件时 Eclipse 有一项称为 包裹在容器中 的功能 重新格式化 gt Android gt 可让您选择一个或多个视图并在其周围包裹您选择的布局 Android Studio中有类似的东西吗 目前正在实施中 问题 69
  • 如何在android中显示保存在sdcard文件夹中的图像[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 当我正在显
  • 如何正确释放Android MediaPlayer

    我正在尝试向我的 Android 应用程序添加一个按钮 当点击该按钮时它会播放 MP3 我已经让它工作了 但没有办法释放 mediaPlayer 对象 因此即使在我离开活动后它仍然会继续播放 如果我在react 方法之外初始化MediaPl
  • Android Eclipse 上的 Web 服务

    我是 android eclipse java 的新手 事实上这个论坛也是如此 有人遇到过这种情况吗 从用户那里获取输入并通过使用 android eclipse 中的 Web 服务来显示适当的结果 有可用的示例吗 非常感谢 我正在发布教程
  • Android:后台Activity可以执行代码吗?

    后台的活动是否被视为 正在运行 并且可以执行代码 还是处于挂起状态 他们暂停了 活动生命周期 http developer android com reference android app Activity html ActivityLi
  • Android 2.3 模拟器在更新位置时崩溃

    我正在使用 Eclipse 编写和调试 Android 应用程序 我需要做的事情之一是更新设备的位置 因此我尝试使用模拟器控制窗口中的位置控制面板 在 手动 选项卡上 我选择 十进制 输入有效的纬度和经度 然后单击 发送 不幸的是 接下来发
  • 我应该释放或重置 MediaPlayer 吗?

    我有自己的自定义适配器类 称为 WordAdapter 并且我正在使用媒体播放器 名为pronounce WordAdapter 类中的全局变量 我有不同的活动 其中每个列表项都有线性布局 名为linearLayout 我正在设置onCli
  • OnLongClickListener 不工作

    我有一个ImageView 我需要使用onLongClickListener对于图像视图 当我使用这段代码时 什么也没有发生 Code gallery Gallery findViewById R id gall1 gallery setA
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

    由于更新至 Android 5 0 MediaPlayer 在 Samsung Galaxy S5 上无法正常工作 启动音频流后加载时间超过 10 秒 示例代码 MediaPlayer mPlayer new MediaPlayer Str
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • 没有支持 FEATURE_CAMERA_EXTERNAL 的 Android 设备

    根据this doc https source android com devices camera external usb cameras一些 Android 设备允许使用 Camera2 API 访问外部 USB 摄像头 我检查了大约
  • 在 Android 应用程序资源中使用 JSON 文件

    假设我的应用程序的原始资源文件夹中有一个包含 JSON 内容的文件 我如何将其读入应用程序 以便我可以解析 JSON See 开放原始资源 http developer android com reference android conte
  • Android:如何从网络异步获取搜索建议?

    我创建了一个可搜索的活动 现在 我想添加从网络服务获取的搜索建议 我想异步获取这些建议 根据添加自定义建议 http developer android com guide topics search adding custom sugge

随机推荐

  • 如何将 @State 值分配给另一个 viewModel 发布的属性

    如何将一个视图中的 State 值 secondaryMarked 分配给 Published SampleViewModel 属性 喜欢 SampleViewModel secondMarked 这是示例 struct ContentVi
  • 编译 openCV 代码时出现“函数未在此范围内声明”错误

    我正在尝试编写一些使用 openCV 函数的代码 我首先采用文档中提供的一些示例代码 include
  • VBScript 中的 XPath 计数

    我尝试使用 XPath 计数函数获取 XML 文件中特定节点的数量 但是 这不断返回错误 msxml3 dll 类型的异常 表达式不返回 DOM 节点 如何使用 VBScript 和 MSXML DOM 从 XPath 计数获取返回值 Di
  • 以数组为原型的 Javascript 对象成员由所有类实例共享

    以前有人注意到这种行为吗 这真的让我很失望 我本来期望原型数组对于每个类实例都是私有的 而不是在所有类实例之间共享 有人可以验证这是正确的行为 并且也许可以更详细地解释这种行为吗 请注意注释的代码以及它如何影响脚本的行为
  • 有没有好的交互式 3D 图形库?

    我正在寻找一个库 它将以 3D 方式布局和显示图形 即网络图 而不是图表 并具有一些交互性 例如选择和拖动节点 旋转显示等 我想在网页中执行此操作 因此 Javascript或 Flash 更好 我也会考虑 Java 自我审视后 我意识到选
  • Action<>多参数语法说明

    有时我无法理解最简单的事情 我确信它就在我的脸上 只是我看不到它 我尝试为这个简单类中的方法创建委托 public static class BalloonTip public static BalloonType BalType get
  • Linux下Git克隆fsync输入/输出错误

    我正在尝试克隆张量流 模型存储库 我通过 ssh 连接到远程计算机 我尝试了很多解决问题的建议 但没有一个对我有用 git clone recursive https github com tensorflow models git Clo
  • Firebase 云消息传递是否需要服务器?

    我目前正在开发一个 Android 应用程序 我想包含 Firebase Cloud Messaging 我计划让 Raspberry Pi 每 5 分钟左右检查一次网站 并在发生变化时发送推送通知 在官方文档中 他们说我需要一个 应用程序
  • 检查 Pandas 数据框是否存在异常值[重复]

    这个问题在这里已经有答案了 传感器图 https i stack imgur com OahnS png 我对包含 8 个电极的传感器进行了实验 上图是电极输出与时间的关系图 正如您在图中看到的 8 个电极之一显然是异常值 可能是由于某些电
  • -ObjC 链接器标志有什么作用?

    我有一个可以使用和不使用链接器标志的应用程序 但是 如果没有链接器标志 向视图添加数据时我会得到非常不同的行为 该标志使链接器加载库中定义 Objective C 类或类别的每个目标文件 虽然此选项通常会导致更大的可执行文件 由于将额外的目
  • 迭代加深 A Star (IDA*) 在 Java 中解决 n-puzzle(滑动拼图)

    我已经实现了一个能够解决这个问题的程序n 拼图问题 http en wikipedia org wiki Fifteen puzzle与 A 由于状态空间太大 我无法预编译它 我必须在运行时计算可能的状态 通过这种方式 A 对于 3 谜题来
  • 错误:我的所有函数都出现“函数的隐式声明...”

    这是代码 main short sMax SHRT MAX int iMax INT MAX long lMax LONG MAX Printing min and max values for types short int and lo
  • 如何在 py.test 中显示警告

    我刚刚跑了py test http pytest org在我的代码上并得到以下输出 6 passed 2 pytest warnings in 40 79 seconds 但是 我看不到什么py test想警告我一下 如何打开控制台的警告输
  • 带蓝牙麦克风的 Android 语音识别器

    我一直在编写一个与蓝牙耳机 耳机配合使用的聊天应用程序 到目前为止 我已经能够通过蓝牙耳机中的麦克风录制音频文件 我已经能够使用 Android 设备的内置麦克风 使用 RecogniserIntent 等实现语音转文本功能 但我找不到让
  • 从 JSON 文件推断字符串文字类型

    我正在读取一个大的 JSON 文件 TypeScript 足够智能推断类型所有属性中除了一个 一个简化的例子 type Animal bear cat dog const data name Max age 3 animal dog 100
  • Control.BeginInvoke 的 MethodInvoker 与 Action

    哪个更正确 为什么 Control BeginInvoke new Action DoSomething null private void DoSomething MessageBox Show What a great post or
  • 一个用户的访问控制允许来源错误

    我有一个 WCF 服务与另一个 Web 应用程序托管在同一服务器上 但端口不同 Web 应用程序使用 jQuery 在 WCF 服务上执行 get post 请求 在配置 WCF 服务以允许跨源请求后 它可以正常工作并符合预期 一个问题是有
  • 如何取消 Alamofire 共享管理器中的所有请求

    如何取消Alamofire共享管理器中的所有请求 这是我的功能 class func cancelAllRequests Alamofire Manager sharedInstance session getTasksWithComple
  • 从 java 调用 clojure

    大多数 从 java 调用 clojure 的热门 google 搜索结果都已过时 建议使用clojure lang RT编译源代码 假设您已经从 Clojure 项目构建了一个 jar 并将其包含在类路径中 您能否帮助清楚地解释如何从 J
  • 如何在 Android 设备上将 http/2 与 Okhttp 一起使用?

    我正在测试一个支持 HTTP 2 的网站 像这样 https www h2check org google it 我尝试使用 okhttp 发送请求 OkHttpClient okHttpClient new OkHttpClient Re