У меня есть служба (post method-rest api), которая запрашивает данные из solr, где данные принимаются как строковое значение csv. Я пытаюсь записать данные String в CSV-файл. При вызове API со страницы HTML я получаю код ошибки 415
Я пробовал все типы MIME (например, text / csv, application / json, application / octate-stream)
Если я получаю тот же сервис от почтальона, я получаю код состояния 200 (успех), и тело ответа приходит в виде csv (через запятую), тот же текст, который я хочу загрузить со страницы html, в виде файла .csv.
@RequestMapping(value = "/csv/{pathVar1}", method = RequestMethod.POST)
public void getRecordsAsCsv(@RequestBody(required = false) QueryStateModel queryString,
@PathVariable("pathVar1") String pathVar1,
@MatrixVariable(value = "intVal1", defaultValue = "0") final int intVal1,
@MatrixVariable(value = "IntVal2", defaultValue = "10") final int intVal2,
@MatrixVariable(value = "sort", required = false) final String sSort,
@MatrixVariable(value = "testVal1", required = false) final String testVal1,
@MatrixVariable(value = "testVal", required = false) final String testVal,
@MatrixVariable(value = "fileName") final String fileName,
@RequestParam(value = "xy", defaultValue = Constants.AND_KEY) final String xy,
@RequestParam(value = "wt", defaultValue = "csv") final String wt,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
final String[] query = request.getParameterValues("q");
String csvResponse = cacheManager.getRecords(queryString, pathVar1, intVal1, IntVal2, sSort, testVal, query,
recordIdentifier, xy, wt);
String date = LocalDate.now().toString();
String qualifiedName;
qualifiedName = fileName+ date + CSV_FILE_EXTENSION;
exportToCsvfile(csvResponse, response, qualifiedName);
}
public static void exportToCsvfile(String value, HttpServletResponse response, String fileName) throws IOException {
response.setHeader("Content-Disposition", "attachment; file=" + fileName);
response.setContentType("text/csv");
try(OutputStream writer = response.getOutputStream()){
writer.write(value.getBytes());
}
}
<html><head>
<title>ExportAsCSV</title>
</head>
<body>
<h3>Download CSV Customers File</h3>
<form action="http://localhost:8081/test/csv/pathVariable" method="POST" target="_self">
<input type="submit" value="ExportCsv">
</form>
</body>
</html>