Re: Re: PEAR::SOAP/.NET interoperability

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mike,

> I think the problem is your $param definition.
> Try: $param = array('Echo'=>$param)

that's a recursive definition. Did you mean
  array("Echo" => "value_of_parameter");
? However please note that "Echo" is the name of the web service's method,
not the name of the parameter (the parameter's name is "s").

Any other thougts?

Regards
Christian


> -----Original Message-----
> From: Manuel Vázquez Acosta [mailto:manu@chasqui.cu]
>
> Humm!
>
> I think you should try changing:
>         style" => "document",
> to
>         style" => "rpc",
>
> Manu.
>
> "Christian Wenz" <christian@wenz.org> wrote in message
> 3F80517B.4B2E807B@wenz.org">news:3F80517B.4B2E807B@wenz.org...
> > Hi guys,
> >
> > today I tried to connect to a .NET web service _without_ using the
> > WSDL functionality of PEAR::SOAP. However unfortunately, my script
> > does not work as expected. I am quite sure that there is something
> > obvious I am doing wrong, but I cannot spot it. I hope you can :-)
> >
> > So here is the .NET web service:
> >
> > <%@ WebService language="C#" class="WS" %>
> >
> > using System;
> > using System.Web.Services;
> > using System.Xml.Serialization;
> >
> > public class WS {
> >     [WebMethod]
> >     public string Echo(string s) {
> >         return s;
> >     }
> > }
> >
> > (a very simple "echo" web service, string parameter called s, web
> > method called "Echo", since no namespace is set,
> http://tempuri.org/
> > is used as namespace, http://tempuri.org/Echo is the SOAPAction.
> >
> > Now here is what I do with PHP (tried with PEAR::SOAP 0.8RC2 and
> > 0.7.5)
> >
> > --SNIP---
> > <?php
> >    require_once "SOAP/Client.php";
> >
> >    $soap = new
> > SOAP_Client("http://www.hauser-wenz.net/playground/ws/Echo.asmx";);
> >
> >    $param = array("s" => "Hello!");
> >    $result = $soap->call(
> >       "Echo",
> >       $param,
> >       array(
> >          "namespace" => "http://tempuri.org/";,
> >          "soapaction" => "http://tempuri.org/Echo";,
> >          "style" => "document",
> >          "use" => "literal", "trace"=>"1"
> >       ));
> >    if (strtolower(get_class($result)) == "soap_fault") {
> >       print "Error! " . $result->message;
> >    } else {
> >       print "{".$result."}";
> >    }
> > print "<hr />Debug<pre>";
> > print nl2br(htmlspecialchars($soap->__getlastrequest()));
> > print "</pre>";
> > print "<hr /><pre>";
> > print nl2br(htmlspecialchars($soap->__getlastresponse()));
> > print "</pre>";
> > ?>
> > --SNIP---
> >
> >
> > First thing I noticed is that the "s" parameter is encoded
> like this:
> >     <s>Hello!</s>
> > however I'd expect
> >     <Echo xmlns="http://tempuri.org/";><s>Hello!"</s></Echo>
> >
> > Consequence: The .NET web method does not receive a parameter and
> > returns an empty string.
> >
> >
> > Any ideas what could be wrong or what I am missing? You can run the
> > .NET web service at
> http://www.hauser-> wenz.net/playground/ws/Echo.asmx
> > .
> >
> >
> Regards
> >
> Christian
>

-- 
PHP Soap Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Kernel Newbies]     [PHP Database]     [Yosemite]

  Powered by Linux