问题标签 [okio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
101 浏览

android - 使用 OkHttp3 取消下载文件

我想用 Okio 取消下载的文件,它在 AsyncTaks运行

0 投票
1 回答
141 浏览

java - 如何在写入过程中出现异常回滚/恢复 IO 操作?- 爪哇

如果在写入过程中出现任何异常,是否可以回滚当前的 IO 操作?我正在尝试使用以下表达式将 UTF-8 字符串写入带有 Okio 库的文件

它适用于正常情况。但是如果在写入过程中发生异常,它只是将一个空字符串写入一个文件,覆盖现有的文件。

我知道我可以在写入之前备份旧内容,并在出现异常时覆盖在 catch 块中。但这看起来是一个常见问题,我想知道是否有任何替代解决方案可以解决这个问题。

谢谢!

0 投票
1 回答
469 浏览

java - 如何使用 Okio 正确地分块读取文件?

我正在尝试使用文件上传 API,该 API 需要以字节大小的块上传文件,该字节大小是从先前的 API 调用中指定的。所以....例如,如果文件很小,它会说以 1MB(以字节为单位)的块上传它,但它很大,它可能会说以 10MB 块上传它,如果它真的很小,它可能会简单地返回给我文件大小表明我应该一次全部上传。关键是我不提前知道。它还需要我将块的顺序指定为查询参数,因此我需要在循环浏览文件块时跟踪我尝试上传的块号。

无论如何,我在我的项目中使用 Retrofit / OkHttp 并认为这对 Okio 来说应该是一个很好的用例。这就是我目前所拥有的,它似乎有效。但是我是 Okio 的新手,不知道我是否遗漏了一些明显的东西,或者这是否可以以更好的方式完成。

您可以看到我正在绑定上传一个块,等待成功响应(来自 Java 8 ),然后使用更新的和再次CompletableFuture调用该方法。就像我说的,它有效,但我是 Okio 的新手,想知道我是否遗漏了一些明显的东西?chunkedUploadoffsetblockNumber

为什么我想使用 Okio 很大程度上是因为我要上传的文件通常在 30MB 到 1GB 之间,所以不要想一次将所有这些文件加载​​到内存中 :)。

0 投票
2 回答
219 浏览

java - OKHttp的BufferedSink(或BufferedSource)中如何实现seek()函数?

OKHttp的BufferSink(或BufferedSource)中如何实现seek()函数?

我们都知道,在 Java 中,RandomAccessFile 类有一个方法seek(long),它使我们能够从特定位置开始读取/写入文件,并且该位置之前的字节将被丢弃。OKHttp中是否有类似的方法?

我注意到BufferedSink中有一个方法:

但不幸的是,参数“offset”只接受int类型,而不是long类型,这在传输大文件时有一定的限制。

0 投票
1 回答
781 浏览

android - 如何在多平台 Android 模块中配置 Kotlin jvmTarget?

我收到此构建错误:

无法将使用 JVM 目标 1.8 构建的字节码内联到使用 JVM 目标 1.6 构建的字节码中。请指定正确的“-jvm-target”选项添加对 Java 8 语言功能的支持可以解决此问题。

尝试在 Android Studio 中为多平台模块编译此构建脚本:

这是一个非常普通的多平台构建脚本,主要由 Jetbrain 的 Mobile 插件自动生成。我无法通过将其插入到 Android 块的底部来以通常的方式解决此问题:

kotlinOptions 在这里是一个未解决的参考。考虑到这个错误的普遍性,我很惊讶互联网上几乎没有解决它。有一些相同或相似的 jvmTarget 错误的帖子,但它们都是从与此不同的构建上下文发布的。唯一出现完全相同错误的人在这里:

kotlin 多平台项目中的 kotlinOptions

奇怪的是,据称最初的发帖人仅仅通过修改他的 androidx 导入就设法解决了这个问题。可能值得注意的是,我的所有六个“不能内联字节码”都与对新的多平台 Okio 库的方法调用相关联。但这肯定更有可能是我自己的设置有错误,而不是杰克沃顿帮所做的事情。

0 投票
1 回答
40 浏览

okhttp - 是否可以在 javascript 中运行 okio

我对 okio 有疑问,是否可以在 javascript 中运行 okio,是否有任何可用于 javascript 的 okio 包?

由于 okio 的发行说明中的​​这个命令,我得到了这个查询。

版本 3.0.0-alpha.3¶ 2021-04-06

新:将 NodeJsFileSystem 移动到它自己的模块中。内置它会阻止 Okio 在没有同步文件系统 API 的浏览器中工作。这是在 okio-nodefilesystem 工件中。

0 投票
1 回答
255 浏览

java - Okhttp3 jar 缺少 okio?

我正在尝试制作一个简单的 Java 程序来上传一堆我必须要 imgur 的图像。但是我一个接一个地遇到问题,不能让 okhttp 正常工作。在这一点上,我试图解决这个问题所花费的时间比我编写程序本身所花费的时间要长得多。我对这种东西很陌生,所以请耐心等待。

所以,现在我有本教程中的以下代码:

这在 RequestBody.create() 部分给出错误:

当谷歌搜索这个错误时,我发现这个页面说我错过了 okio 库。我认为这将包含在 okhttp jar 中。我还是下载了 okio jar 并将其添加到我的项目中,但错误并没有改变。我不知道还有什么问题。

0 投票
0 回答
62 浏览

maven - 由于 okio.Bytestring.startswith 方法错误,Chrome 驱动程序未启动

我正在尝试通过 selenium 启动 Chrome 驱动程序。但奇怪的是,我收到了以下错误。我使用 okio 版本作为 2.1.0,kotlin-stdlib 作为 1.2.60。请帮助某人

0 投票
0 回答
39 浏览

java - java.lang.NoClassDefFoundError:解析失败:Lokio/Buffer

我正在使用 okhttp3 版本4.9.3、okhttp3 日志拦截器4.9.3和 okio 版本3.0.0。我的代码类似于下面的代码片段(我使用的是 Android)。但我总是得到这个错误:java.lang.NoClassDefFoundError: Failed resolution of: Lokio/Buffer.

0 投票
0 回答
24 浏览

java - 在 Android 上读取/写入 JSON,而不使用字符串等不可变类型

我正在开发的 android 应用程序有一个安全要求,即它不能将敏感信息存储为不可变类型(如字符串),而是使用可变类型,其缓冲区可以在使用后被覆盖。

这是一个问题,因为后端使用 JSON 来传递信息。

有没有办法使用可变对象(如 CharArray 而不是 String)创建 json 对象?

所以我可以例如序列化

同样阅读

变成一个物体

当前的应用程序架构是 GSON/Retrofit,但如果它可以工作,我愿意重构为 Moshi。

我有点迷茫,我真的很感激一些关于如何实现这一点的指导。

还是我应该一起放弃 JSON 并使用带有二进制字段的 protobuf 之类的东西?