当前位置: 首页 > 知识库问答 >
问题:

使用带kotlin的改进型android上传文件表单uri

魏勇军
2023-03-14

我正在尝试使用改装上传视频,但无法生成正确的格式。这是我的邮递员请求:

邮递员请求:https://i.stack.imgur.com/rDC6s.png

这是APIendpoint调用:

@POST("uploadVideo")
suspend fun uploadVideo(@Body body: UploadVideoRequest) : Response<DefaultResponse>

,这也是“UploadVideoRequest”类:

data class UploadVideoRequest(
    @SerializedName("video")
    val video: RequestBody? = null
)

最后这是我的电话:

fun createPostWithVideo(fileName: String) {

    val file = File(fileName);
    val requestFile = RequestBody.create("multipart/form-data".toMediaTypeOrNull(), file)
    val body = MultipartBody.Part.createFormData("video", requestFile.toString())


    viewModel.uploadVideoRequest = UploadVideoRequest(
        video = body.body,
    )
    viewModel.uploadVideo()

}

但我仍然无法发送该请求

共有1个答案

闾丘山
2023-03-14

您尝试发送视频的方式不正确。请按照以下步骤使用改造功能发送视频。首先,创建一个这样的网络接口。

@Multipart
@POST("uploadVideo")
suspend fun uploadVideo(@Part part: MultipartBody.Part) : Response<DefaultResponse>

第二,调用函数如下:

fun createMultipartBodyPart(file: File) {
    val requestBody = RequestBody.create("multipart/form-data".toMediaTypeOrNull(), file)
    val body = MultipartBody.Part.createFormData("name", file.name, requestBody)

    service.uploadVideo(body)
}
 类似资料:
  • 当以字符串形式发送文件时,如何显示上载进度?我了解了关于这个问题的所有可用帖子,但都使用了带有文件的多部分帖子。但我没有这个文件。我有一根非常非常大的绳子。请帮帮我,谢谢。 我添加了拦截器: 此自定义请求主体: 改装服务: 和上传方法: 但进展只有一次100%发射

  • 对不起我的英语。我试着在服务器上上传大的视频文件,这个文件超过50 MB。当我上传小文件时,一切都很好。在清单中,我设置了和,这对我没有帮助。下面是我的代码: 接口 方法返回文件: 服务器上的方法上载 错误: 抛出OutOfMemoryError“分配100390006字节分配失败,16777216空闲字节和92MB直到OOM” 全stacktrace

  • 当我调用API时,我得到了一个AWS S3存储桶URL在s3 URL上,我试图通过改造上传文件,但我得到了以下错误 我正在通过PUT方法进行多部分上传。在postman上,它可以工作,但不能从Android 相关改造

  • 此外,文件浏览器在选择存储在设备本身的图像/PDF时工作,但通过这种方法从Google Drive上传的文件不能正确上传。有什么想法吗?

  • 本文向大家介绍django1.8使用表单上传文件的实现方法,包括了django1.8使用表单上传文件的实现方法的使用技巧和注意事项,需要的朋友参考一下 Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 在django中我们可以采用Form类来处理表单

  • 我正在使用翻新上传图像/文件 在这里,我发布了我的API调用以上传图像 请帮助我如何为这个调用编写接口,我已经用@part和@PartMap试过了,但是不起作用