From: Paul K. <pau...@ya...> - 2008-08-20 14:44:12
|
I don't see anything wrong on the S::L side. Bob, do you know if gSOAP supports MIME? "Supports single/multipart MIME attachment (parsing side only)." This used to be the case, but since then Byrne added MIME support for generated messages too. The description needs to be updated. Paul. --- On Tue, 8/19/08, Robbie Bow <rob...@gm...> wrote: > From: Robbie Bow <rob...@gm...> > Subject: Re: [Soaplite-devel] [Fwd: SOAP with Attachments not supported?] > To: "Martin Kutter" <mar...@fe...> > Cc: "soaplite-devel" <soa...@li...>, bob...@ya... > Date: Tuesday, August 19, 2008, 3:25 PM > Sorry, I'm afraid I don't. I did once look at > getting the MIME tests working > but really didn't know what I was doing :( > > 2008/8/19 Martin Kutter <mar...@fe...> > > > Hi, > > > > does someone know why this call fails? > > > > Unfortunately, I'm not a MIME expert. > > > > Martin > > > > -------- Weitergeleitete Nachricht -------- > > > Von: Bob Dole > <bob...@ya...> > > > Antwort an: bob...@ya... > > > An: kut...@us... > > > Betreff: SOAP with Attachments not supported? > > > Datum: Mon, 18 Aug 2008 12:50:07 -0700 (PDT) > > > > > > Quick prefix which could make it so that you > don't have to answer the > > > long question: does "Supports > single/multipart MIME attachment > > > (parsing side only)." mean that a SOAP::Lite > client can't send SwA? > > > > > > The longer question is why the following > doesn't work. I have a > > > SOAP::Lite client and a gSOAP server. I want to > send a MIME file from > > > one to the other. > > > > > > Here's the message I sent to the gSOAP list: > > > > ------------------------------------------------------ > > > > > > I am trying to send a MIME encoded file from a > SOAP::Lite client to a > > > gSOAP server, but the server is giving me the > following error which I > > > don't understand, since I'm not that > experienced with SOAP: > > > Error 6 fault: SOAP-ENV:Client [no subcode] > > > "No XML element tag" > > > Detail: [no detail] > > > The following is the command I run (I include the > source at the end > > > incase the raw messages don't show an obvious > error) > > > $ ./MIMEsend.pl soapcpp2.exe > > > Calling client setup > > > SOAP::Transport::new: () > > > SOAP::Serializer::new: () > > > SOAP::Deserializer::new: () > > > SOAP::Parser::new: () > > > SOAP::Lite::new: () > > > SOAP::Transport::HTTP::Client::new: () > > > Calling sendMIME > > > SOAP::Data::new: () > > > SOAP::Lite::call: () > > > SOAP::Serializer::envelope: () > > > SOAP::Serializer::envelope: sendMIME > SOAP::Data=HASH(0x1075d488) > > > SOAP::Data::new: () > > > SOAP::Data::new: () > > > SOAP::Data::new: () > > > SOAP::Data::new: () > > > SOAP::Data::new: () > > > SOAP::Transport::HTTP::Client::send_receive: > HTTP::Request=HASH > > > (0x1060ece8) > > > SOAP::Transport::HTTP::Client::send_receive: POST > > > http://192.168.0.131:1234/ HTTP/1.1 > > > Accept: text/xml > > > Accept: multipart/* > > > Accept: application/soap > > > Content-Length: 600620 > > > Content-Type: Multipart/Related; > type="text/xml"; > > > start="<main_envelope>"; > boundary="----------=_1219045514-2988-0"; cha > > > rset=utf-8 > > > SOAPAction: "capture#sendMIME" > > > This is a multi-part message in MIME format... > > > ------------=_1219045514-2988-0 > > > Content-Type: text/xml > > > Content-Disposition: inline > > > Content-Location: /main_envelope > > > Content-ID: <main_envelope> > > > <?xml version="1.0" > encoding="UTF-8"?><SOAP-ENV:Envelope > > > xmlns:namesp1="capture" > xmlns:SOAP-ENV="http://schemas.xmlsoap. > > > org/soap/envelope/" > > > > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > > > xmlns:xsi="http://www.w3.org/2001/XMLSchem > > > a-instance" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" SOAP- > > > > ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encodin > > > > g/"><SOAP-ENV:Body><namesp1:sendMIME><magicNumber > > > > xsi:type="xsd:int">123</magicNumber></namesp1:sendMIME></SOAP-ENV:Body > > > ></SOAP-ENV:Envelope> > > > ------------=_1219045514-2988-0 > > > Content-Type: application/exe; > name="soapcpp2.exe" > > > Content-Disposition: attachment; > filename="soapcpp2.exe" > > > Content-Transfer-Encoding: base64 > > > MIME-Version: 1.0 > > > X-Mailer: MIME-tools 5.427 (Entity 5.427) > > > > TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAA > > > ...MIME FILE... > > > TkdQQURESU5HWFhQQURESU5H > > > ------------=_1219045514-2988-0-- > > > SOAP::Transport::HTTP::Client::send_receive: > HTTP::Response=HASH > > > (0x1076f8c8) > > > SOAP::Transport::HTTP::Client::send_receive: 500 > read failed: > > > Connection reset by peer > > > Content-Type: text/plain > > > Client-Date: Mon, 18 Aug 2008 07:45:28 GMT > > > Client-Warning: Internal response > > > 500 read failed: Connection reset by peer > > > SOAP::Deserializer::deserialize: () > > > SOAP::Parser::decode: () > > > 500 read failed: Connection reset by peer at > ./MIMEsend.pl line 23 > > > SOAP::Transport::HTTP::Client::DESTROY: () > > > SOAP::Data::DESTROY: () > > > SOAP::Data::DESTROY: () > > > SOAP::Data::DESTROY: () > > > SOAP::Parser::DESTROY: () > > > SOAP::Transport::DESTROY: () > > > SOAP::Serializer::DESTROY: () > > > SOAP::Data::DESTROY: () > > > SOAP::Data::DESTROY: () > > > SOAP::Deserializer::DESTROY: () > > > SOAP::Data::DESTROY: () > > > SOAP::Lite::DESTROY: () > > > > > > > > > So my first question would be, is it because of > the "This is a multi- > > > part message in MIME format..."? Is that the > thing missing the XML > > > element it's talking about? Because > that's the only thing I can see > > > that seems to differ from the SwA spec. > > > > > > So for the record, my gSOAP code looks like this > (basically just the > > > example code from the documentation): > > > > > > int ns__sendMIME(struct soap *soap, int > magicNumber, int &result){ > > > struct soap_multipart * attachment; > > > for(attachment = soap->mime.list; attachment; > attachment = > > > attachment->next){ > > > printf("MIME attachment:\n"); > > > printf("Memory=%p\n", > (*attachment).ptr); > > > printf("Size=%ul\n", > (*attachment).size); > > > printf("Encoding=%d\n", > (int)(*attachment).encoding); > > > printf("Type=%s\n", > (*attachment).type? > > > (*attachment).type:"null"); > > > printf("ID=%s\n", > (*attachment).id? > > > (*attachment).id:"null"); > > > printf("Location=%s\n", > (*attachment).location? > > > (*attachment).location:"null"); > > > printf("Description=%s\n", > (*attachment).description? > > > (*attachment).description:"null"); > > > } > > > printf("magicNumber = %#x\n", > magicNumber); > > > if(magicNumber == 123){ > > > result = 42; > > > } > > > else{ > > > result = 0; > > > } > > > return SOAP_OK; > > > } > > > > > > My SOAP::Lite code looks like this: > > > > > > #!perl > > > use SOAP::Lite +trace => 'all'; > > > #use SOAP::Lite; > > > use SOAP::Lite::Packager; > > > use MIME::Entity; > > > my $ent = build MIME::Entity > > > Type => > "application/exe", > > > Path => $ARGV[0], > > > Filename => $ARGV[0], > > > Disposition => "attachment"; > > > print "\nCalling client > setup\n\n"; > > > $client = SOAP::Lite > > > -> > packager(SOAP::Lite::Packager::MIME->new) > > > -> parts([$ent]) > > > -> > proxy('http://192.168.0.131:1234/') > > > -> ns('capture'); > > > print "\nCalling > sendMIME\n\n"; > > > $data = SOAP::Data->name(magicNumber => > "123"); > > > $result = $client->sendMIME($data); > > > #print "result = $result\n"; > > > > > > Thanks for any help you can give! > > > > > > Bob > > > > > > > > > > ------------------------------------------------------------------------- > > This SF.Net email is sponsored by the Moblin Your Move > Developer's > > challenge > > Build the coolest Linux based applications with Moblin > SDK & win great > > prizes > > Grand prize is a trip for two to an Open Source event > anywhere in the world > > > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > > _______________________________________________ > > Soaplite-devel mailing list > > Soa...@li... > > > https://lists.sourceforge.net/lists/listinfo/soaplite-devel > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move > Developer's challenge > Build the coolest Linux based applications with Moblin SDK > & win great prizes > Grand prize is a trip for two to an Open Source event > anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/_______________________________________________ > Soaplite-devel mailing list > Soa...@li... > https://lists.sourceforge.net/lists/listinfo/soaplite-devel |