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

改型:如何发送具有多部分请求的字段

须景辉
2023-03-14

我想发送图像或文件作为多部分请求。但是请求将需要额外的标识符,如Int ID或字符串。我怎样才能发送那些而不为每个API调用制定特定的接口?使用基本API,我可以将这些参数作为JSON文件发送,但是使用retfit时,我必须为特定的API调用创建精确的接口。

internal interface MultipartServicePost {
        @POST("{url}")
        @Multipart
        fun postImage(
            @Part image: MultipartBody.Part,
            @Part ("reqId") extraParam1: RequestBody,
            @Part ("typeId") extraParam2: RequestBody,
            @Part ("device") extraParam3: RequestBody,
            @Part ("token") extraParam4: RequestBody,
            @Part ("userId") extraParam5: RequestBody,
            @Path(value = "url", encoded = true)
            endpoint: String
        ): Call<ResponseBody>
    }
val client = httpClient.build()
val rBuilder = Retrofit.Builder()
             .baseUrl(url)
             .addConverterFactory(GsonConverterFactory.create())
             .client(client)
             .build()
val service = rBuilder.create(MultipartServicePost::class.java)
val req = service.postImage(body, endpoint)
val response = req.execute()

共有1个答案

魏勇军
2023-03-14

试试这个,让我知道它是否有效

 @POST("Url end point")
    @Multipart
    fun postImage(@PartMap map: HashMap<String, RequestBody>
     ): Call<ResponseBody>

并且像这样使用

  val map = HashMap<String, RequestBody>()
  map["reqId"] = reqId.toString().toRequestBody("text/plain".toMediaTypeOrNull())
  //for image
    val body = imageFile.asRequestBody("image/jpeg".toMediaTypeOrNull())
        map["Image kye like reqId\"; filename=\"FileName.png\" "] = body
 类似资料:
  • 问题内容: 我有以下POST请求表格(简化): 我尝试发送POST请求: 但它返回状态并带有以下注释: 请指出我的错误。我应该进行哪些更改才能使其正常工作? 问题答案: 您自己设置标题,包括边界。不要这样 会为您生成一个边界并将其设置在标头中,但是如果您 已经 设置了标头,那么生成的有效负载和标头将不匹配。只需将标题全部放下即可: 请注意,我还给了零件一个文件名(路径的基本名称)。 有关多部分PO

  • 我正在尝试通过API发送post请求。呼叫要求: 我已经使用Charles HTTP代理查看需要发送哪些头/内容。 我的请求:(基本上抄录自查尔斯的多部分章节) 如有任何帮助,我们将不胜感激!干杯!

  • 我正在使用vapor为我的应用程序托管图像。我有以下代码来接收图像并打印它。 我怎么能发送一个多部分的请求,只是使用swft?。这是我正在使用的当前帖子请求代码。

  • 如何用Python发送带有请求的?如何发送一个文件,我明白,但如何发送表单数据的方法不能理解。

  • 我使用下面的代码来创建一个条目在strapi服务器,但不幸的是,我得到了"坏请求"错误。我想不出来。请指导我如何解决这个问题。 ApiSet。班 主要活动。班 我的身体。班 还有我的模型课 数据班 属性。班 最后,我得到了如下回应: 我只是想知道我在哪里犯了错误

  • 我目前正在使用Chrome Addon Postman-REST客户端轻松创建POST/GET请求。 现在我想调试一个上传脚本,我正在寻找一种方法,使请求编码为“多部分/表单-数据”,这样我也可以发送一个文件。