Loading ...
Sorry, an error occurred while loading the content.

AW: AW: [soaplite] with ->call() => $value is different from ->value( $value ) ?

Expand Messages
  • Martin Busik
    Hi, ... I ll demonstrate it with a different example: $auth = SOAP::Header- name( aaa ); $param = SOAP::Data- name( ppp ); $proxy- call($method,$authm,$param)
    Message 1 of 4 , Apr 6, 2010
    • 0 Attachment
      Hi,

      > I guess it's not clear to me why there is a difference.

      I'll demonstrate it with a different example:

      $auth = SOAP::Header->name("aaa");
      $param = SOAP::Data->name("ppp");

      $proxy->call($method,$authm,$param)

      is a variant where SOAP::Lite recognises the Header

      $auth = SOAP::Header->name("aaa");
      $param = SOAP::Data->name("ppp")->value($auth);

      $proxy->call($method,$param)

      is a variant where SOAP::Lite does not recognises the header, it is simply
      "not there".

      I suppose the reason for that behavior is, that SOAP::Header is a subclass
      of SOAP::Data, so
      you might use SOAP::Header everywhere you may use SOAP::Data. It does not
      work vice versa.

      I suppose (without checking the source code), that only the parameter list
      of the call() method
      is checked with respect to SOAP::Header. In contrast, the content of the
      supplied parameter is
      not checked (this makes in my opinion no sense).

      > Even more so since the documentation seems to indicate that
      > they are equivalent -- they indicate you can do it either
      > way. But if they are not equivalent...

      Which part of the documentation indicates that they are equivalent?

      Cheers,
      Martin
    Your message has been successfully submitted and would be delivered to recipients shortly.