Невозможно прочитать составные данные для типа контента vnd.3gpp.5gnas.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Невозможно прочитать составные данные для типа контента vnd.3gpp.5gnas.

Сообщение Гость »

У меня есть приложение 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»