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

在Android中更新多部分表单数据请求的默认内容类型

苏野
2023-03-14

我们目前正在Android中使用okhttp3和Reformation2来使用多部分/表单数据进行POST类型的网络api调用,api请求和响应如下所示

如果您观察到,请求标题Content-Type具有Multipart/form-data;边界=xxxxxx-xxxx-xxx......

下面是代码

@Multipart
@POST("/some-api-method")
Call<SomeResponseBody> someCreateMethod(@PartMap Map<String, RequestBody> options);

我在发送定制的请求头内容类型时遇到了一个问题,它是“multipart/formdata;**charset=utf-8;**boundary=xxxxx-xxxxx-x…..”基本上我需要更新内容类型头以适应“charset=utf-8;”为此我尝试了以下代码

@Multipart
@POST("/some-api-method")
@Headers({
        "Content-Type: multipart/form-data; charset=utf-8"
})
Call<SomeResponseBody> someCreateMethod(@PartMap Map<String, RequestBody> options);

这导致添加"charset=utf-8;"到Content-Type,但这导致删除或不添加现有属性"边界=xxx-xxxx......;"

基本上我需要下面这样的东西

Content-Type : "multipart/form-data; charset=utf-8; boundary=xxxx-xxx.....;"

任何帮助在这里实现这一点将不胜感激。

共有1个答案

相俊迈
2023-03-14

由于改装-多部分请求:所需的多部分文件参数“file”不存在

 @POST("/some-api-method")
 Call< SomeResponseBody > someCreateMethod(@Header("Content-Type") String contentType, @Body RequestBody body);

我创建了MultipartBody对象,如下所示

RequestBody dataBody = RequestBody.create(okhttp3.MultipartBody.FORM, mGson.toJson(mData));
MultipartBody multipartBody = new MultipartBody.Builder()
       .addPart(MultipartBody.Part.createFormData("key1", null, requestBodyObj1))
       .addPart(MultipartBody.Part.createFormData("key2", null, requestBodyObj2))
       .addPart(MultipartBody.Part.createFormData("key3", null, dataBody))
       .build();
String contentType = "multipart/form-data; charset=utf-8; boundary=" + multipartBody.boundary();
        
someCreateMethod(contentType, multipartBody);
 类似资料:
  • 问题内容: 我正在编写一个RESTful API。我在使用不同的动词上载图像时遇到麻烦。 考虑: 我有一个对象,可以通过对URL的发布/放置/删除/获取请求来创建/修改/删除/查看。如果有要上载的文件,则请求是多部分形式;如果只有文本要处理,则请求是application / xml。 为了处理与对象相关的图像上传,我正在做类似的事情: 这里的主要问题是在尝试处理放置请求时,显然$ _POST不包

  • 问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。

  • 我正在尝试通过使用多部分数据主体的JMeter构建HTTP请求。 我有一个HTTP头管理器,其内容类型设置为多部分/表单数据;边界=AaB03x。我选择了“将多部分/表单数据用于POST”。 然后我创建了一个数据主体, 当我运行这个程序时,我发现请求没有正确地发送正文,而是发送了一些随机数据, 发布数据: 并给出错误响应, 我的第二个问题是:请求的第3部分发送一个要上载的文件。我可以通过某种方式传

  • 我是Java(Spring Boot)新手,我正在尝试向s3发送一个

  • 我是Guzzle的新手,我正试图提出一个Rest请求来签署PDF文件。供应商表示: 您需要使用基本身份验证 系统返回一个包含签名PDF文件的响应,类型为application/octet stream 这是我用古斯测试的代码,但提供商说在应用程序/pdf中发送的mime类型。如何“强制”PDF文件的mimetype? 谢谢你的帮助。

  • 我对Android系统是新手。我想上传图像作为表单数据使用改型后的方法。我正在使用 这是我的请求体。