Call asp.net web service from PHP with multiple parameters

前端 未结 3 1675
逝去的感伤
逝去的感伤 2020-12-04 15:57

I\'m using a method using SoapClient class in a php page to call a web service in an asp.net site.

Here is the php code.

$client = new SoapClient(\"         


        
相关标签:
3条回答
  • 2020-12-04 16:36

    I was googling for multi-parameter calling. All the thread did not tell the following. When php call .asmx web service, the passing of parameters MUST MATCH the variables used in the web service of :

    public string XYZ(string p, string q) 
    

    The web service call has to be something like :

    $params = array( "p"  => $name1,    "q" => $name2 );
    

    p, q pairs must be named and clarified in php calling.

    0 讨论(0)
  • ***********index.php******************
    <?php
    require_once("lib/nusoap.php"); 
     $client = new SoapClient("http://localhost:1966/ListAndishmandan/WebServiseFinal.asmx?WSDL");
    
        $params = array( 'Param1'  => 'Moslem', 
                        'Param2' => 'Ganji!');
    
        $result = $client->TestMethod($params)->TestMethodResult;
    
        print_r( $result);
        $params = array( 'Param1'  => 'Moslem', 
                        'Param2' => 'Ganji!');
    echo "\n \r";
        $result2 = $client->ShowNameFamely($params)->ShowNameFamelyResult;
    
        print_r( $result2);
    ?>
    
        *******************WebServiseFinal.asmx?WSDL**************************
        using System;
        using System.Collections.Generic;
        using System.Linq;
        using System.Web;
        using System.Web.Services;
    
        /// <summary>
        /// Summary description for WebServiseFinal
        /// </summary>
        [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        // 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 WebServiseFinal : System.Web.Services.WebService {
    
            public WebServiseFinal () {
    
                //Uncomment the following line if using designed components 
               //InitializeComponent(); 
            }
    
            [WebMethod]
            public string HelloWorld() {
                return "Hello World";
            }
            [WebMethod]
            public string TestMethod(string Param1, string Param2)
            {
                return Param1 + " " + Param2;
            }
    
            [WebMethod]
            public string ShowNameFamely(string Param1, string Param2)
            {
                return Param1 + " " + Param2;
            }
    
        }
    
    0 讨论(0)
  • 2020-12-04 16:46

    Try like this:

    $client = new SoapClient("http://testurl/Test.asmx?WSDL");
    $params->Param1 = 'Hello';
    $params->Param2 = 'World!';    
    $result = $client->TestMethod($params)->TestMethodResult;
    
    0 讨论(0)
提交回复
热议问题