Open topic with navigation

# Send Multipart Data

The following program provides a more detailed example that includes sending multipart data to a Media Server for processing.

    import com.autonomy.aci.client.services.AciService;
    import com.autonomy.aci.client.services.impl.AciServiceImpl;
    import com.autonomy.aci.client.services.impl.DocumentProcessor;
    import com.autonomy.aci.client.transport.AciParameter;
    import com.autonomy.aci.client.transport.AciServerDetails;
    import com.autonomy.aci.client.transport.InputStreamActionParameter;
    import com.autonomy.aci.client.transport.impl.AciHttpClientImpl;
    import com.autonomy.aci.client.util.ActionParameters;
    import java.io.ByteArrayInputStream;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.apache.http.impl.client.HttpClientBuilder;
    import org.w3c.dom.Document;

    public class MediaTest {
        public static void main(String... args) throws TransformerException,
            IOException {
            // Create an AciService pointing at media server.
            final AciService aciService = new AciServiceImpl(
                new AciHttpClientImpl(HttpClientBuilder.create().build()),
                new AciServerDetails("mediaserver.example.com", 14000)
            );

            // Config for OCR, assumes [Channels] VisualChannels=1 is enabled on media
            //   server and that the relevant functionality is licensed.
            final String config =
                "[Session]\n" +
                "Engine0=Ingest\n" +
                "Engine1=OCR\n" +
                "Engine2=Output\n" +
                "\n" +
                "[Ingest]\n" +
                "Type=Image\n" +
                "\n" +
                "[OCR]\n" +
                "Type=ocr\n" +
                "Languages=en\n" +
                "\n" +
                "[Output]\n" +
                "Type=response\n";

            try (
                final FileInputStream fis = new FileInputStream(
                    "/home/user/ocr_test.png"
                )) {
                final ActionParameters params = new ActionParameters("process");
                // Plain string parameters can be sent directly.
                params.add("synchronous", true);
                // We can use input stream parameters for image files.
                params.add(new InputStreamActionParameter("SourceData", fis));
                // The documentation for 'Config' says it should either be base-64
                //   encoded or sent as multipart form data, so we're doing the
                //   latter below.
                params.add(new InputStreamActionParameter("Config",
                    new ByteArrayInputStream(config.getBytes("UTF-8"))));

                // Perform the request, and parse the response to XML.
                final Document xml = aciService.executeAction(
                    params, new DocumentProcessor()
                );

                // Print the XML out.
                TransformerFactory tf = TransformerFactory.newInstance();
                final Transformer transformer = tf.newTransformer();
                transformer.setOutputProperty(OutputKeys.INDENT, "yes");
                transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
                transformer.setOutputProperty(
                    "{http://xml.apache.org/xslt}indent-amount", "2"
                );

                transformer.transform(new DOMSource(xml),
                    new StreamResult(new OutputStreamWriter(System.out, "UTF-8")));
            }
        }
    }

© 2018 Micro Focus or one of its affiliates | Send documentation feedback to Micro Focus Close Send documentation feedback To open the configured email client on this computer, open an email window. Otherwise, copy the information below to a web mail client, and send this email to swpdl.idoldocsfeedback@microfocus.com. We appreciate your feedback! Product: Topic Title: Help Topic: Feedback:

_FT_HTML5_bannerTitle.htm