Na. asszem megvan. Ideirom, hátha vkinek még hasznára lesz. Keresgettem a neten, és ezt találtam: http://www.zend.com/zend/tut/tutorial-campbell.php?article=tutorial-campbell&kind=t&id=5596&open=1&anc=0&view=1#notes Ennek az utolsó hozzászólása adta atippet:
It's a on a different thread on this site by Author: Mohan Kulkarni Date: 06/01/2004 00:13:
$s = new soapclient('http://localhost/xService/CustomerData.asmx? WSDL', 'wsdl');$s->setDefaultRpcParams(true); // This fixed the problem$parameters['id'] = 100;$soap_proxy = $s->getProxy();
irtam php-ben egy hasonlót ez alapján: http://hu2.php.net/manual/hu/function.fsockopen.php. a 7. hozzászólásban van egy soap-postolás példa. de time outot mond. azért még szenvedek vele egy darabig. :)
Szerintem most kellene PHP nélkül, direktben (mondjuk a wget-tel) addig próbálkozni/javítgatni, amig meg nem találod azt a verziót, amivel már elfogadja a paramétert.
A paraméter tag-ben van különbség: A vs ezt várja: <nev>string</nev> a NuSOAP ezt küldi> <nev xsi:type="xsd:string>Ezanev</nev> Aztán különbség van az encodingban is. utf-8-at vár, és iso-8859-1-et küld. De ezek szvsuz nem lehetnek olyan nagy különbségek.
és teljesen jól megy át a request. Nem is annyira a 'teljesen jól' meg a 'nem teljesen jól' közötti különbség a lényeg, hanem az hogy a te programodból elküldött illetve a visual-micsodából elküldött kérdés között mi a különbség, tekintve hogy az előbbi nem jó, az utóbbi meg igen.
Letöltöttem az Ethereal-t, feltettem, figyeltem a csomagokat, és teljesen jól megy át a request. Azért is, mert a megszólitott webmethod indul el a másik gépen. Csak a paramétert nem olvassa ki. (amúgy jó kis program ez az Ethereal. sok mindent meg lehet tudni a gépemről, mi mindent csinál 'csak úgy').
Az első 3 hozzászólás a php topicban található. Az a lényeg, hogy egy .net-ben irt webservice egyik metódusát kellene meghivnom. Erre a NuSOAP osztályokat használom. Arra figyeltem fel, hogy ha php-ből hivom soap-pal, akkor a paramétereket nem veszi át. Ha vs2k3-ból, akkor meg igen. Akkor jöjjön a mai blog: :))
Ma egész nap ezzel szenvedtem. Átirtam vs2003-ban a példawebservice-ben a helloworld metódust: [WebMethod] public string HelloWorld(string nev) { return "Hello World: " + nev; }
A request ez: POST /CCS_Webservice/CCSSelectService.asmx HTTP/1.0 Host: bp-inf-policy User-Agent: NuSOAP/0.7.2 (1.43) Content-Type: text/xml; charset=ISO-8859-1 SOAPAction: "http://tempuri.org/HelloWorld" Content-Length: 506