"Op" <o@peek.org.uk> wrote in message 20030911021533.1860.qmail@pb1.pair.com">news:20030911021533.1860.qmail@pb1.pair.com... > Can you one help?? I am trying to get a Visual Basic 6 MSSOAP 3.0 client to > make a simple call and receive a DIME attachment from PEAR::SOAP 8.0 RC1. > It's been days now and I still can't get the dam thing to work.I have > written a client in php and that works fine. Has anyone managed to get > anything like this to work?? I have basic data types between VB & PHP > working fine. but I am stuck on this one. > > Any bits of code, pointers or just conformation that someone has made it > work would be great > > PEAR::SOAP is great , but all the better if I can get this to work. > > Thanks in advance > > OP. TO get a PEAR::SOAP 8.0 RC1 server to return a DIME attachment to visual basic 6 using the MSSOAP 3.0 first off you need to copy the funtion function _decodeDIMEMessage from Base.php to the HTTP.php You need to edit the SOAP library file Value.php edit the function SOAP_Attachment $this->attributes['href'] = 'cid:'.$cid; and replace with $this->attributes['href'] = ''.$cid; For some reason the MSSOAP implementation has a problem with "cid:" in the returned href. I assume that this will break any other implementation of soap from working , but hey, it's micros**t trying to do their own thing again. Here is my code for the VB client: It uses lowlevel access, so no wsdl file required (I think) '--------------------------------------------------------------------------- Dim Serializer As SoapSerializer30 Dim Reader As SoapReader30 Dim ResultElm As IXMLDOMElement Dim FaultElm As IXMLDOMElement Dim Connector As SoapConnector30 Dim Composer As DimeComposer30 Dim Parser As DimeParser30 Set Connector = New HttpConnector30 Set Serializer = New SoapSerializer30 Set Composer = New DimeComposer30 Set Reader = New SoapReader30 Set Parser = New DimeParser30 Connector.Property("EndPointURL") = "http://myserver.com:8080/soap/init_server.php?wsdl" Connector.Property("SoapAction") = "urn:init_Server#Example_server#echoMimeAttachment" Connector.Connect Connector.BeginMessage Set Composer = CreateObject("MSSOAP.DimeComposer30") Serializer.InitWithComposer Connector.InputStream, Composer Serializer.StartEnvelope Serializer.StartBody Serializer.StartElement "echoMimeAttachment", "urn:init_Server" Serializer.StartElement "inputStruct", CALC_NS Serializer.WriteString "FromServer" Serializer.EndElement Serializer.EndElement Serializer.EndBody Serializer.EndEnvelope Serializer.Finished res = Reader.LoadWithParser(Connector.OutputStream, Parser) Execute = Reader.RpcResult.Text Set Node = Reader.RpcParameter("return") Set Attachment = Reader.GetReferencedAttachment(Node) FileName = "c:\FromServer.blob" Attachment.SaveToFile FileName, "True" '--------------------------------------------------------------------------- ---- The php server was just a simple. function echoMimeAttachment($stuff) { return new SOAP_Attachment('return',"application/octet-stream","/path/to/file.blob"); } I think that was it. Good luck. OP -- PHP Soap Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php