[WebService] Soap Message with attachment.

Posted by damienk on 30-Oct-2014 10:16

Hi,

I'm using an https webservice with Webspeed and I would like to attach a PDF file using MULTIPART/RELATED Mime header before sending the SOAP Message to the webservice.

But it doesn't seem to work although its working with SOAPUI.

When I remove the boundary part :

+ '------=_Part_2_9697824.1414659778799~n'
+ 'Content-Type: text/xml; charset=UTF-8~n'
+ 'Content-Transfer-Encoding: 8bit~n'
+ 'Content-ID: <rootpart@soapui.org>~n'

and the other

+ '------=_Part_2_9697824.1414659778799~n'
+ 'Content-Type: application/pdf; name=minimal.pdf~n' etc...

It's working alright.

The  SOAP Message :

POST https://mywebservice HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: multipart/related; type="text/xml"; start="<rootpart@soapui.org>"; boundary="----=_Part_2_9697824.1414659778799"
SOAPAction: ""
MIME-Version: 1.0
Content-Length: 2945
Host: mywebservice
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)


+ '------=_Part_2_9697824.1414659778799~n'
+ 'Content-Type: text/xml; charset=UTF-8~n'
+ 'Content-Transfer-Encoding: 8bit~n'
+ 'Content-ID: <rootpart@soapui.org>~n'

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mul="MyWS">
<soapenv:Header>
</soapenv:Header>
   <soapenv:Body>
      <mul:sendMessage>
         <mul:wsMessage>
            <mul:content>Contenu</mul:content>
            <mul:custId></mul:custId>
            <mul:from></mul:from>
            <mul:fullContenu>Full Contenu</mul:fullContenu>
            <mul:orgName></mul:orgName>
            <mul:resumeContent></mul:resumeContent>
            <mul:sendProfiles>
            <mul:strategy></mul:strategy>
            <mul:subject></mul:subject>
            <mul:to></mul:to>
         </mul:wsMessage>
      </mul:sendMessage>
   </soapenv:Body>
</soapenv:Envelope>
+ '------=_Part_2_9697824.1414659778799~n'
+ 'Content-Type: application/pdf; name=minimal.pdf~n'
+ 'Content-Transfer-Encoding: binary~n'
+ 'Content-ID: <mdws-attached/minimal.pdf>~n'
+ 'Content-Disposition: attachment; name="minimal.pdf"; filename="minimal.pdf"~n'
+ '~n'
+ '%PDF-1.1~n'
+ '%¥±ë~n'
+ '~n'
+ '1 0 obj~n'
  + '<< /Type /Catalog~n'
     + '/Pages 2 0 R~n'
  + '>>~n'
+ 'endobj~n'
+ '~n'
+ '2 0 obj~n'
  + '<< /Type /Pages~n'
     + '/Kids [3 0 R]~n'
     + '/Count 1~n'
     + '/MediaBox [0 0 300 144]~n'
  + '>>~n'
+ 'endobj~n'
+ '~n'
+ '3 0 obj~n'
  + '<<  /Type /Page~n'
      + '/Parent 2 0 R~n'
      + '/Resources~n'
       << /Font~n'
           + '<< /F1~n'
               + '<< /Type /Font~n'
                  + '/Subtype /Type1~n'
                  + '/BaseFont /Times-Roman~n'
               + '>>~n'
           + '>>~n'
       + '>>~n'
      + '/Contents 4 0 R~n'
  + '>>~n'
+ 'endobj~n'
+ '~n'
+ '4 0 obj~n'
  + '<< /Length 55 >>~n'
+ 'stream~n'
  + 'BT~n'
    + '/F1 18 Tf~n'
    + '0 0 Td~n'
    + '(Hello World) Tj~n'
  + 'ET~n'
+ 'endstream~n'
+ 'endobj~n'
+ '~n'
+ 'xref~n'
+ '0 5~n'
+ '0000000000 65535 f~n' 
+ '0000000018 00000 n ~n'
+ '0000000077 00000 n ~n'
+ '0000000178 00000 n ~n'
+ '0000000457 00000 n ~n'
+ 'trailer~n'
  + '<<  /Root 1 0 R~n'
      + '/Size 5~n'
  + '>>~n'
+ 'startxref~n'
+ '565~n'
+ '%%EOF~n'
+ '~n'
+ '------=_Part_2_9697824.1414659778799--~n'

Any tips would by great.

API used : https://community.progress.com/community_groups/openedge_development/f/19/t/506.aspx

All Replies

Posted by damienk on 30-Oct-2014 13:01

Note I've got the same issue with my .NET application, where I can't see an addAttachment method like this one.

(JAVA AXIS CODE)

FileDataSource file = new FileDataSource("C/repertoire/exemple.txt");
DataHandler data = new DataHandler(file);
AttachmentPart attachmentPart = new AttachmentPart(data);
attachmentPart.setContentId("mdws-attached/exemple.txt");
myStubService.addAttachment(attachmentPart);

myStubService.sendMessage(myMessage);

This thread is closed