上传Google Drive API Retrofit 2

时间:2017-04-24 20:06:18

标签: android api upload retrofit2

以下是Retrofit2的界面:

public interface OAuthServerIntf {

....
@POST("upload/drive/v3/files?uploadType=multipart")
@Multipart
Call<JsonObject> uploadFileMutil(
        @Header("Authorization") String authToken,
        @Part MultipartBody.Part metaPart,
        @Part MultipartBody.Part dataPart);

}

我打电话的地方:

public void onActivityResult(...) {
   ....
 MultipartBody.Part filePart = 
    MultipartBody.Part.createFormData("image", file.getName(), fileBody);
 Call<JsonObject> request =  
    server.uploadFileMutil(oauthToken.getAccessToken(),filePart);
 request.enqueue(new Callback<JsonObject>(){...});

}

oauthToken.getAccessToken() -accesstoken

MultipartBody.Part filePart - 我要发送给服务器的文件

一般来说,如何进行查询以及 metaPart dataPart 的这两个参数?

读取令牌需要带到承载类型,怎么办?

1 个答案:

答案 0 :(得分:1)

不确定你是否找到了答案。仍然会在下面显示一些代码,并希望这有助于某人。

val contentType = MediaType.parse("application/json; charset=UTF-8");
val content = "{\"name\": \"" + srcFile.name + "\"}"
val metaPart = MultipartBody.Part.create(RequestBody.create(contentType, content))
val dataPart = MultipartBody.Part.create(RequestBody.create(MediaType.parse("text/plain"), srcFile))
val headers = HashMap<String, String>()
headers.put("Authorization", "Bearer " + accessToken)

mDriveApi.uploadFile(headers, metaPart, dataPart)