Lost parameter calling WS from PHP

Posted by Zyd on Stack Overflow See other posts from Stack Overflow or by Zyd
Published on 2010-05-07T02:58:36Z Indexed on 2010/05/07 3:58 UTC
Read the original article Hit count: 613

Filed under:
|
|

Hi,

I'm trying to call this WS from PHP:

namespace WsInteropTest
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://advantage-security.com/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class TestWs : System.Web.Services.WebService
    {
        [WebMethod]
        public string HelloWorld(int entero)
        {
            return "Hello World " + entero.ToString();
        }
    }
}

The code i use to call the WS is this:

<?php
        require_once('nusoap\nusoap.php');
  $client = new nusoap_client('http://localhost/testws/TestWS.asmx?WSDL');

  $params = array(
   'entero' => 100
  );

  $result = $client->call('HelloWorld', array($params), 
      'http://advantage-security.com/HelloWorld',
      'http://advantage-security.com/HelloWorld');
  print_r($result);
  ?>

and the result is this

Hello World 0

What do you think may be the problem?

According to what i've read there is no issues with simple types between .NET (which are converted to standard soap types) and PHP.

If it is of use, here it is the WSDL.

Thanks in advance

  <?xml version="1.0" encoding="utf-8" ?> 
- <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://advantage-security.com/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://advantage-security.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsdl:types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://advantage-security.com/">
- <s:element name="HelloWorld">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="1" maxOccurs="1" name="entero" type="s:int" /> 
  </s:sequence>
  </s:complexType>
  </s:element>
- <s:element name="HelloWorldResponse">
- <s:complexType>
- <s:sequence>
  <s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string" /> 
  </s:sequence>
  </s:complexType>
  </s:element>
  </s:schema>
  </wsdl:types>
- <wsdl:message name="HelloWorldSoapIn">
  <wsdl:part name="parameters" element="tns:HelloWorld" /> 
  </wsdl:message>
- <wsdl:message name="HelloWorldSoapOut">
  <wsdl:part name="parameters" element="tns:HelloWorldResponse" /> 
  </wsdl:message>
- <wsdl:portType name="TestWsSoap">
- <wsdl:operation name="HelloWorld">
  <wsdl:input message="tns:HelloWorldSoapIn" /> 
  <wsdl:output message="tns:HelloWorldSoapOut" /> 
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="TestWsSoap" type="tns:TestWsSoap">
  <soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> 
- <wsdl:operation name="HelloWorld">
  <soap:operation soapAction="http://advantage-security.com/HelloWorld" style="document" /> 
- <wsdl:input>
  <soap:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:binding name="TestWsSoap12" type="tns:TestWsSoap">
  <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" /> 
- <wsdl:operation name="HelloWorld">
  <soap12:operation soapAction="http://advantage-security.com/HelloWorld" style="document" /> 
- <wsdl:input>
  <soap12:body use="literal" /> 
  </wsdl:input>
- <wsdl:output>
  <soap12:body use="literal" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="TestWs">
- <wsdl:port name="TestWsSoap" binding="tns:TestWsSoap">
  <soap:address location="http://localhost/testws/TestWS.asmx" /> 
  </wsdl:port>
- <wsdl:port name="TestWsSoap12" binding="tns:TestWsSoap12">
  <soap12:address location="http://localhost/testws/TestWS.asmx" /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>

© Stack Overflow or respective owner

Related posts about php

Related posts about .NET