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

解析http多部分/表单数据移交值接收的JSON文件(Java Springboot)

高德水
2023-03-14

总结

  • 上传服务接收包含JSON(MediaType.APPLICATION_JSON_VALUE)的超文本传输协议multipart/form数据流
  • JSON值需要作为参数传递给构造函数

当前情况:我将从REST API接收http多部分/表单数据,该API通过接口包含JSON文件(MediaType.APPLICATION\u JSON\u值)

@Override
public Mono<String> upload(String fileName, String mimeType, InputStream inputStream) throws UploadException {
        
}

让我们假设发布的多部分文件如下所示(尚不知道确切内容):

POST http://123.4.5.6:78901/api/send HTTP/1.1
Content-Type: multipart/form-data; boundary="01ead4a5-4a67-53254-ad05-255485e25332"
Host: 123.4.5.6:78901
Content-Length: 100000


--01ead4a5-4a67-53254-ad05-255485e25332
Content-Type: application/json; charset=utf-8
Content-Disposition: form-data; name=printer


{
  "printerId": "123",
  "jobId": "456",
  "start": "2021-01-19 12:20:15,285",
  "optionalData": {
    "abc": "ABC",
    "def": "DEF",
    "ghi": "123"
  }
}
--01ead4a5-4a67-53254-ad05-255485e25332

现在的任务是读取每个键的JSON值,并将每个值作为参数传递给构造函数,如

FileCmd fileCmd = new FileCmd(String printerId, String jobId, String start, Map<String, String> optionalData);
  • 我还没有找到一个将多部分文件中的JSON值作为参数传递或至少将其存储在变量中的示例

有没有人能给出一个如何继续进行这类任务的提示?

共有1个答案

鲍俊杰
2023-03-14

使用BufferReader读取流

BufferedReader bR = new BufferedReader(new InputStreamReader(inputStream));
String line = "";

阅读每一行并将其附加到StringBuilder。

StringBuilder responseStrBuilder = new StringBuilder();

while((line = bR.readLine()) != null){
   responseStrBuilder.append(line);
}
inputStream.close();

最后将字符串对象传递给JSONObject

JSONObject result= new JSONObject(responseStrBuilder.toString());

从JSONObject获取JSON值:示例

String printerId = result.getString("printerId");
 类似资料:
  • 我正在使用请求库编写Web服务客户端。我正在获取包含文件和文本json的多部分/表单数据。我不知道如何解析它。是否有合适的库来解析python中的多部分/表单数据格式,或者我应该自己编写解析器? 我的代码: b'\r\n--c00750d1-8ce4-4d29-8390-b50bf02a92cc\r\nContent-Displace: form-data; name="playback Hash

  • 我正在尝试从接收包含3个参数的多部分请求: 一个 一个 我在控制器中接收到和fine,但json的所有字段都为NULL。会有什么问题吗? JSON 控制器 邮差

  • 问题内容: 我正在使用请求库编写Web Service客户端。我正在包含文件和text-json的multipart / form- data中获取数据。我不知道如何解析它。是否有合适的库可以解析python中的multipart / form-data格式,还是我应该自己编写解析器? 我的代码: b’\ r \ n–c00750d1-8ce4-4d29-8390-b50bf02a92cc \ r

  • 我目前正在尝试解析我通过Chrome中的Postman插件发送的。然而,我得到的输出如下: 当我尝试调试时,会得到这个输出。当我尝试时,我得到一个空数组,所以我假设数据的格式不正确(只是一个字符串)。在我写我自己的算法之前,我想确定我没有用这个算法重新发明轮子。我做错什么了?或者,如果没有,是否存在一些CakePHP3函数来处理这个问题? 更新 我发现了代码中的错误,路由过程似乎以某种方式将pos

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

  • 在使用ajax提交多部分/表单数据时,我遇到了一个问题。 HTML代码: jQuery和Ajax: 以及文件输入为空的请求: -----------------------------65942623427134内容-处置:表单-数据;名称="id_noticia" 336-----------------65942623427134内容配置:表单数据;name=“foto[]”;filename