{
"header": {
"geoDate": {
"point": {
"longitude": 77.56246948242188,
"latitude": 12.928763389587403
},
"date": "2020-02-25T18:26:00Z"
},
"version": "1.35.00.001",
"businessId": "178"
}
}
JSONObject data = new JSONObject();
data.put("name", params.name);
data.put("mimeType", params.mimeType);
data.put("fileSize", params.fileSize);
data.put("inputData", params.data);
requestJSON.put("data", data);
我正在寻找一种方法来做到这一点。我想知道我们是否也可以发送,服务器是否必须更改API结构的任何内容,比如当前字节的接受字符串,我们将把它更改为inputdata
的文件。
对我来说很好(这是我的代码,只需根据您的业务逻辑调整它即可):
接口:
@Multipart
@POST("{projectName}/log")
Call<LogRp> uploadFile(
@Path("projectName") String project,
@PartMap Map<String, RequestBody> mp,
@Part MultipartBody.Part file
);
服务:
private MultipartBody.Part buildFilePart(File file, FileType type) {
return MultipartBody.Part.createFormData("file", file.getName(),
RequestBody.create(MediaType.parse(type.value.get()), file));
}
private Map<String, RequestBody> buildJsonPart(LogRq logRq) throws JsonProcessingException {
return Collections.singletonMap("json_request_part", RequestBody.create(
MediaType.parse("application/json"),
new ObjectMapper().writeValueAsString(logRq))
);
}
client.uploadFile(
project,
buildJsonPart(logRq),
buildFilePart(file, type)
)
我有一个可行的解决方案,但它似乎是愚蠢的需要。 这是我的工作解决方案: 而不是。我真的以为那会很好。不是的。 列表项。我以为这肯定能行。相反,它开始对我大喊大叫,说我的内容/类型无效?内容类型没有改变,但出于某种原因,它希望它是Application/JSON(尽管我明确地说是multipart/form-data。我猜是针对Application/JSON请求的,它不喜欢玩multipart?
问题内容: 我正在尝试使用伪装完成多部分文件上传,但似乎在任何地方都找不到很好的示例。我本质上希望HTTP请求类似于以下内容: 甚至… 我是否需要手动构建请求主体,包括生成多部分边界?考虑到此客户端可以执行的其他所有操作,这似乎有点过头了。 问题答案: 不,你没有。您只需要定义一种代理接口方法,将content-type指定为:multipart / form- data和其他信息,例如远程API
我试图使用feign完成一个多部分文件上传,但是我似乎在任何地方都找不到一个好的例子。我基本上希望HTTP请求的结果类似如下: 或者甚至… 我需要手动构建请求体吗,包括生成多部分边界?考虑到这个客户端可以做的所有其他事情,这似乎有点过分。
我正在尝试使用多部分实体方法上传文件。但它失败,错误说{“错误”:“文件参数值'无'无效”} 我的代码是: File File = new File(" C:/Users/SST-06/Desktop/new . txt "); 我的实体文件包含所有提到的参数。 -hkYO-pblk 0 uqlxjtvklrbkosxz 7 mye-8 wbvbvanx Content-Disposition:f
我试图上传一个图像使用改型2.0。我有几个其他的参数与表单数据一起发送,其中包括一个整数列表。我的请求声明是 这种方式不像预期的那样工作,像下面这样单独发送的整数列表。 另外,为了将整数列表转换为RequestBody,我使用了下面的方法
问题内容: 我试图创建一个页面,允许用户选择要上传到我的SpringMVC Controller的文件。 这是我的控制器: 我的upload.html表单具有: 我也尝试过使用标准格式(非Thymeleaf格式): 不知道它是否相关,但是我有以下配置: 我的build.gradle中包含以下内容: 我正在运行嵌入式Tomcat,通过以下方式启动: 单击提交按钮时,在控制器中没有看到请求,但在浏览器