我正在试着做一个简单的Java程序来上传一堆图片,我必须要记住。但我遇到了一个又一个问题,不能让okhttp正常工作。在这一点上,我花在解决这个问题上的时间比我自己编写程序所需的时间要长得多。我对这种东西很陌生,所以请耐心点。
所以,现在我有来自this tutorial的以下代码
RequestBody requestBody = new MultipartBody.Builder()
.addFormDataPart("new", "This is my new TODO")
.addFormDataPart("image", "attachment.png",
RequestBody.create(new File(""), MediaType.parse("image/png"))
)
.setType(MultipartBody.FORM)
.build();它在RequestBody.create()部分给出一个错误:
The type okio.ByteString cannot be resolved. It is indirectly referenced from required .class files当我在谷歌上搜索这个错误时,我找到了this page,它说我缺少okio库。我以为这会包含在okhttp jar中。我还是下载了okio jar,并将其添加到我的项目中,但错误没有改变。我不知道还会出什么问题。
发布于 2021-11-16 21:57:07
好了,我知道你的问题了。
3.0.0-Alpha-10及以上版本的Okio源代码已用Kotlin重写。
你的代码需要ByteString.class,为此你需要一个Java .class。
使用这个版本的https://repo1.maven.org/maven2/com/squareup/okio/okio/3.0.0-alpha.9/在迁移到Kotlin之前,这个版本是用Java编写的。
下面的代码将被编译:
package example;
import java.io.File;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
public class OkHttpExample {
public void example() {
RequestBody requestBody = new MultipartBody.Builder()
.addFormDataPart("new", "This is my new TODO")
.addFormDataPart("image", "attachment.png",
RequestBody.create(new File(""), MediaType.parse("image/png"))
)
.setType(MultipartBody.FORM)
.build();
}
}请参阅构建路径依赖关系:

一旦进入构建路径,您就可以在eclipse中打开jar文件,并看到其内容: ByteString.class is included:

https://stackoverflow.com/questions/69985777
复制相似问题