Java кодированный base64 мыло вложения - PullRequest
1 голос
/ 24 января 2012

Это мой первый пост, и я действительно застрял. Вот что мне нужно сделать: я пишу клиент веб-службы java, использующий axis2 для генерации прокси-серверов, и пытаюсь отправить вложение. Вложение должно быть закодировано base64, и прокси-сервер вызывает обработчик данных. Я использовал MimeUtility.encode для создания кодировки, но обработчик данных не любит поток вывода. Обработчик данных работал только со строкой, но строка неправильно обрабатывается на стороне сервера. Если вы можете дать мне какое-то руководство, я работал над этим в течение нескольких дней. Вот плохой код, который у меня есть, сейчас он не читает обработчик данных, но, надеюсь, он иллюстрирует, что мне нужно сделать:

int BUFFER_SIZE = 4096;
byte[] buffer = new byte[BUFFER_SIZE];
InputStream input = new FileInputStream("C:/test.docx");
OutputStream encodedOutput = MimeUtility.encode(new ByteArrayOutputStream(), "base64");
int n = input.read(buffer, 0, BUFFER_SIZE);
while (n >= 0) {
    encodedOutput.write(buffer, 0, n);
    n = input.read(buffer, 0, BUFFER_SIZE);
}
DataHandler dhandle = new DataHandler(encodedOutput, "base64");
...