java - 创建 okhttp3 请求正文以在 google drive 中创建文件夹
问题描述
在我的 android 应用程序中,我使用 okhttp:3.10.0 创建一个 httpclient 来向 google drive (REST V3) api 发出请求。我想在用户谷歌驱动器中创建一个文件夹。我阅读了谷歌文档来创建一个文件夹。该文档建议有这样的东西
File fileMetadata = new File();
fileMetadata.setName("Invoices");
fileMetadata.setMimeType("application/vnd.google-apps.folder");
我也经历了这个问题。我正在像这样制作 okhttpclient
OkHttpClient client = new OkHttpClient();
RequestBody body = ????????
Request request = new Request.Builder()
.url("https://www.googleapis.com/drive/v3/files")
.addHeader("Authorization", String.format("Bearer %s", tokens[0]))
.post(body)
.build();
try {
Response response = client.newCall(request).execute();
String jsonBody = response.body().string();
Log.i(LOG_TAG, String.format("User Info Response %s", jsonBody));
return new JSONObject(jsonBody);
} catch (Exception exception) {
Log.w(LOG_TAG, exception);
}
return null;
我正在尝试使用 json 对象,但它没有转换为请求正文,因为它无法解析同伴
import okhttp3.MediaType.Companion.toMediaTypeOrNull;
import okhttp3.RequestBody.Companion.toRequestBody;
JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("title", "Ancd test");
jsonObject.put("mimeType", "application/vnd.google-apps.folder");
} catch (JSONException e) {
e.printStackTrace();
}
String body = jsonObject.toString().toRequestBody("application/json; charset=utf-8".toMediaTypeOrNull());
现在我不确定如何在请求正文中添加该元数据。任何人都知道如何做到这一点?
解决方案
MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
RequestBody body = RequestBody.create(jsonObject.toString(), mediaType);
推荐阅读
- python - 容器化 Azure 函数 - 从 Dockerfile 更改 AzureWebJobsScriptRoot 变量
- python - Buildozer 无法构建 apk
- git - git从哈希创建分支而不获取
- html - 如何在链接下方的左侧而不是右侧开始超级菜单
- zapier - Zapier 从具有多个分隔符的文本行中提取国家代码
- css - Storybook 仅加载 Emotion Styling 第一次加载
- android - 对 LiveData 使用 setValue 而不是 PostValue
- javascript - 使用类型脚本根据数组中的某些项过滤两个数组
- csv - 在任何网站上以相同格式显示 .csv 内容
- c++ - 有没有办法将 8bitX32 ymm 寄存器右/左洗牌 N 个位置(c++)