Thanks for that so far. We're getting closer, but still not there yet. We can generate a request that works using SOAPUI. Here is the raw request from it.
POST http://vbnejdfwls4001:16400/easyimage/services/EasyImageService HTTP/0.9 SOAPAction: "urn:suncorp-com-au:service:easyimage:2007:05:storeImage" Content-Type: multipart/related; type="text/xml"; start="<rootp...@soapui.org>"; boundary="---- =_Part_38_196453.1237444713062" MIME-Version: 1.0 Authorization: Basic Q3VzdG9tZXJUZXN0LVN0b3JlcjplYXN5aW1hZ2Uy User-Agent: Jakarta Commons-HttpClient/3.1 Host: vbnejdfwls4001:16400 Content-Length: 2901 ------=_Part_38_196453.1237444713062 Content-Type: text/xml; charset=UTF-8 Content-Transfer-Encoding: 8bit Content-ID: <rootp...@soapui.org> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/ envelope/" xmlns:urn="urn:suncorp-com-au:service:easyimage:2007:05"> <soapenv:Header/> <soapenv:Body> <urn:StoreImageRequest> <urn:logicalRepository>CustomerTest</urn:logicalRepository> <urn:image> <urn:imageData>cid:691309939620</urn:imageData> </urn:image> </urn:StoreImageRequest> </soapenv:Body> </soapenv:Envelope> ------=_Part_38_196453.1237444713062 Content-Type: image/jpeg Content-Transfer-Encoding: binary Content-ID: <691309939620> ÿØÿà ------=_Part_38_196453.1237444713062-- The question is still, how do we get CF8 to do the same. When we use the code you supplied below, with a header cfhttpparam we get: File Content: Error Detail: Status Code: 500 Internal Server Error Mime Type:text/xml When I remove the cfhttpparam header we get: File Content: Error 500--Internal Server Error >From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1: 10.5.1 500 Internal Server Error The server encountered an unexpected condition which prevented it from fulfilling the request. Error Detail: Status Code: 500 Internal Server Error Mime Type:text/html I have an interface contract document that I can supply to you off list if you'd like. Regards, and thank you so much for this help. Darren Tracey On Mar 18, 11:09 pm, MrBuzzy <mrbu...@gmail.com> wrote: > I'm back, feeling just a teeny bit more learned :) > If you are indeed using 'soap with attachments' > [ref:http://www.w3.org/TR/SOAP-attachments] then you need to create a 'soap > message package'. > > A soap message package is a mime multi-part request that encapsulates the > soap xml and one ore more 'attachments'. > > Getting to cfhttp... unfortunately the http request content type has to be > "Multipart/Related", so you can't use cfhttp mutipart="true". > > It may work like this; > > <cfhttp url="http://localhost:8300/receiver.cfm" > method="post" resolveurl="no" redirect="yes" charset="utf-8"> > > <cfhttpparam type="header" name="Content-type" value='Multipart/Related; > boundary=MIME_boundary; type=text/xml; > start="<http://mrbuzzy.org/example.xml>"' /> > > <cfhttpparam type="body" value="#myBody#" /> > > </cfhttp> > > Note the 'body' of the request is binary (yeah, it seems cfhttp will allow > it). > > It's going to be tricky to create the muti-part body (but maybe not > impossible), like dis... > > <cfsavecontent variable="myText"> > --MIME_boundary > Content-Type: text/xml; charset=UTF-8 > Content-Transfer-Encoding: 8bit > Content-ID: <http://mrbuzzy.org/example.xml> > > <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/ > envelope/"> > <SOAP-ENV:Header/> > <SOAP-ENV:Body> > <StoreImageRequest xmlns:urn="urn:company-com- > au:service:easyimage:2007:05"> > <logicalRepository>CustomerTest</logicalRepository> > <image> > <urn:imageData>cid:827370646852</urn:imageData> > <imageData>Bluehills.jpg</imageData> > </image> > </StoreImageRequest> > </SOAP-ENV:Body> > </SOAP-ENV:Envelope> > > --MIME_boundary > Content-Type: image/jpeg > Content-Transfer-Encoding: binary > Content-ID: <http://mrbuzzy.org/Bluehills.jpg> > > </cfsavecontent> > > <cffile action="write" file="#expandpath('/myTemp.dat')#" output=""> > <cffile action="readbinary" file="#expandpath('/Bluehills.jpg')#" > variable="myImage"> > <cffile action="append" file="#expandpath('/myTemp.dat')#" > output="#myText#"> > <cffile action="append" file="#expandpath('/myTemp.dat')#" > output="#myImage#"> > <cffile action="append" file="#expandpath('/myTemp.dat')#" > output="--MIME_boundary--"> > <cffile action="readbinary" file="#expandpath('/myTemp.dat')#" > variable="myBody"> > > This is completely untested. I couldn't find a web service to try it on and > it would be a pain to debug the body format. But it might work too ;) > > Cheers. > > > > On Wed, Mar 18, 2009 at 6:58 PM, MrBuzzy <mrbu...@gmail.com> wrote: > > Hi Darren, > > > Soap with attachments has been on my 'to get my head around' list for > > a while. I've done similar things but not that exactly. > > > I assume you have tried cfinvoke and it didn't work, which is why > > you're using cfhttp? > > > Can you look at the wsdl to work out what type of data is expected by > > the service? Perhaps you can post a snippet. > > > (I can't recall if soap attachments expects the binary data encoded to > > a string, or if you can post the file 'raw' like you're doing) > > > If noone else provides the answer, I'm happy to try it out myself for fun. > > > Cheers. > > > On 18/03/2009, Darren Tracey <dtw...@demiurge.org> wrote: > > > > We need to call an existing software service here from our CF8 and > > > Flex app, and we need to access it (to submit a file for storage) via > > > "SOAP with Attachments". > > > We can't see how to do this from within CF and haven't had much luck > > > with Google. > > > If you try to mix the request content types in the SOAP call, you get > > > a CF error. > > > > Here's the code: > > > ----------------------------------------------------------------------------- > > > <cfxml variable="theXML"> > > > <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/ > > > envelope/"> > > > <SOAP-ENV:Header/> > > > <SOAP-ENV:Body> > > > <StoreImageRequest xmlns:urn="urn:company-com- > > > au:service:easyimage:2007:05"> > > > <logicalRepository>CustomerTest</logicalRepository> > > > <image> > > > <!--- <urn:imageData>cid:827370646852</urn:imageData> ---> > > > > <imageData>Bluehills.jpg</imageData> > > > </image> > > > </StoreImageRequest> > > > </SOAP-ENV:Body> > > > </SOAP-ENV:Envelope> > > > </cfxml> > > > > <cfhttp url="http://servername:16400/easyimage/services/ > > > EasyImageService" username="username" password="password" > > > method="post" resolveurl="no" redirect="yes" charset="utf-8"> ---> > > > <cfhttpparam type="xml" value="#theXML#" /> > > > <cfhttpparam type="file" file="Bluehills.jpg" > > > name="Bluehills.jpg" /> > > > </cfhttp> > > > -------------------------------------------------------------------------------------------- > > > > Here's the error: > > > You may not mix the use of cfhttpparam tags of type FILE or FORMFIELD > > > with cfhttpparam tags of type BODY or XML. > > > > The error occurred in E:\euc_smallapps\_test\cfml\Fred_SOAP1.cfm: line > > > 45 > > > 43 : <!--- <cfhttpparam type="" type="header" name="SOAPAction" value > > > = "getProductInfoXML"> ---> > > > 44 : <cfhttpparam type="xml" value="#theXML#" /> > > > 45 : <cfhttpparam type="file" file="Bluehills.jpg" > > > name="Bluehills.jpg" /> > > > 46 : </cfhttp> > > > 47 : > > > > Has anyone ever been able to get this to work? > > > Does anyone have any suggestions? > > > > Regards > > > Darren Tracey > > > -- > > Sent from my mobile device- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "cfaussie" group. To post to this group, send email to cfaussie@googlegroups.com To unsubscribe from this group, send email to cfaussie+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cfaussie?hl=en -~----------~----~----~----~------~----~------~--~---