У меня есть приложение Spring Boot, доступное через REST.
После получения запроса оно возвращает многочастные данные вызывающей стороне. Запрашивающее приложение перебирает данные Multipart и печатает ответ.
Как видно из кода ниже, составной ответ имеет два разных типа контента: application/json и данные vnd.3gpp.5gnas, разделенные границами.
Я успешно могу прочитать данные application/json.
Однако , когда я пытаюсь прочитать данные vnd.3gpp.5gnas, выходные данные полностью отличаются от того, что было отправлено изначально.
Данные массива байтов, отправленные для vnd.3gpp.5gnas данные представляют собой шестнадцатеричный массив байтов, как вы можете видеть в приведенном ниже коде.
Может ли кто-нибудь помочь определить, как правильно читать шестнадцатеричный массив байтов?
Код для отправки составного байтового массива
private byte[] createMultipartContent(String jsonData, String boundary)
throws IOException, DecoderException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
// write JSON part
dataOutputStream.writeBytes("--" + boundary + "\r\n");
//dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"xml\"\r\n");
dataOutputStream.writeBytes("Content-Type: application/json\r\n");
dataOutputStream.writeBytes("\r\n");
dataOutputStream.write(jsonData.getBytes());
dataOutputStream.writeBytes("\r\n");
// write binary part
dataOutputStream.writeBytes("--" + boundary + "\r\n");
//dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"binary\"\r\n");
dataOutputStream.writeBytes("Content-Id: n1msg\r\n");
dataOutputStream.writeBytes("Content-Type: application/vnd.3gpp.5gnas\r\n");
dataOutputStream.writeBytes("\r\n");
dataOutputStream.write(Hex.decodeHex(
"c27b000f80000d040aa8dcef000d040ab100d2"));
dataOutputStream.writeBytes("\r\n");
// write boundary
dataOutputStream.writeBytes("--" + boundary + "--\r\n");
return outputStream.toByteArray();
}
Код для чтения составных данных
public String parseMultipartData(
MimeMultipart mimeMultipart) {
String result = null;
// Iterate over each part in the MimeMultipart object
try {
for (int i = 0; i < mimeMultipart.getCount(); i++) {
BodyPart bodyPart = mimeMultipart.getBodyPart(i);
// Extract content type of this body part
String contentType = bodyPart.getContentType();
if (contentType.equals("application/json")) {
byte[] bytes = IOUtils.toByteArray(
bodyPart.getInputStream());
result = new String(bytes);
} else if (
contentType.equals("vnd.3gpp.5gnas")) {
byte[] bytes = IOUtils.toByteArray(
bodyPart.getInputStream());
result = new String(bytes);
}
}
} catch (MessagingException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
return result;
}
Подробнее здесь: https://stackoverflow.com/questions/781 ... 3gpp-5gnas
Невозможно прочитать составные данные для типа контента vnd.3gpp.5gnas. ⇐ JAVA
Программисты JAVA общаются здесь
1710824737
Гость
У меня есть приложение Spring Boot, доступное через REST.
После получения запроса оно возвращает многочастные данные вызывающей стороне. Запрашивающее приложение перебирает данные Multipart и печатает ответ.
Как видно из кода ниже, составной ответ имеет два разных типа контента: application/json и данные vnd.3gpp.5gnas, разделенные границами.
Я успешно могу прочитать данные application/json.
Однако , когда я пытаюсь прочитать данные vnd.3gpp.5gnas, выходные данные полностью отличаются от того, что было отправлено изначально.
Данные массива байтов, отправленные для vnd.3gpp.5gnas данные представляют собой шестнадцатеричный массив байтов, как вы можете видеть в приведенном ниже коде.
Может ли кто-нибудь помочь определить, как правильно читать шестнадцатеричный массив байтов?
[b]Код для отправки составного байтового массива[/b]
private byte[] createMultipartContent(String jsonData, String boundary)
throws IOException, DecoderException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
// write JSON part
dataOutputStream.writeBytes("--" + boundary + "\r\n");
//dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"xml\"\r\n");
dataOutputStream.writeBytes("Content-Type: application/json\r\n");
dataOutputStream.writeBytes("\r\n");
dataOutputStream.write(jsonData.getBytes());
dataOutputStream.writeBytes("\r\n");
// write binary part
dataOutputStream.writeBytes("--" + boundary + "\r\n");
//dataOutputStream.writeBytes("Content-Disposition: form-data; name=\"binary\"\r\n");
dataOutputStream.writeBytes("Content-Id: n1msg\r\n");
dataOutputStream.writeBytes("Content-Type: application/vnd.3gpp.5gnas\r\n");
dataOutputStream.writeBytes("\r\n");
dataOutputStream.write(Hex.decodeHex(
"c27b000f80000d040aa8dcef000d040ab100d2"));
dataOutputStream.writeBytes("\r\n");
// write boundary
dataOutputStream.writeBytes("--" + boundary + "--\r\n");
return outputStream.toByteArray();
}
[b]Код для чтения составных данных[/b]
public String parseMultipartData(
MimeMultipart mimeMultipart) {
String result = null;
// Iterate over each part in the MimeMultipart object
try {
for (int i = 0; i < mimeMultipart.getCount(); i++) {
BodyPart bodyPart = mimeMultipart.getBodyPart(i);
// Extract content type of this body part
String contentType = bodyPart.getContentType();
if (contentType.equals("application/json")) {
byte[] bytes = IOUtils.toByteArray(
bodyPart.getInputStream());
result = new String(bytes);
} else if (
contentType.equals("vnd.3gpp.5gnas")) {
byte[] bytes = IOUtils.toByteArray(
bodyPart.getInputStream());
result = new String(bytes);
}
}
} catch (MessagingException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
return result;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78178366/unable-to-read-multipart-data-for-content-type-vnd-3gpp-5gnas[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия