2012-03-14 13 views
10

मैं एक एएसपीनेट साइट में वेब सेवा कॉल करने के लिए एक php पेज में सोप क्लाइंट क्लास का उपयोग कर एक विधि का उपयोग कर रहा हूं।एकाधिक पैरामीटर के साथ PHP से एएसपीनेट वेब सेवा को कॉल करें

यहां PHP कोड है।

$client = new SoapClient("http://testurl/Test.asmx?WSDL"); 

$params = array('Param1' => 'Hello', 
       'Param2' => 'World!'); 

$result = $client->TestMethod($params)->TestMethodResult; 

echo $result; 

समस्या है, मैं केवल पहले पैरामीटर (param1) "हैलो" हो रही है आगे और लगता है PARAM2 के साथ कोई समस्या मौजूद है। यहां एएसपीनेट विधि है।

[WebMethod] 
public string TestMethod(string Param1, string Param2) 
{ 
    return Param1 + " " + Param2; 
} 

क्या मैं जवाब में Hello World! पाने के लिए याद आ रही है?

उत्तर

19

इस तरह का प्रयास करें:

$client = new SoapClient("http://testurl/Test.asmx?WSDL"); 
$params->Param1 = 'Hello'; 
$params->Param2 = 'World!';  
$result = $client->TestMethod($params)->TestMethodResult; 
+0

... यह काम किया! धन्यवाद! – Felasfaw

+0

एक त्वरित सवाल। मेरा कोड काम नहीं करने का कारण बी/सी है इसे टाइप एरे के एक ही पैरा के रूप में पारित किया जा रहा है? – Felasfaw

+0

@Felasfaw, हाँ। –

1
***********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

$ result2 = $ क्लाइंट-> ShowNameFamely ($ params) -> ShowNameFamelyResult; –

1

मैं बहु पैरामीटर फोन करने के लिए googling किया गया था। सभी धागे निम्नलिखित नहीं बताए गए। php कॉल .asmx वेब सेवा, मानकों के निधन चाहिए की वेब सेवा में इस्तेमाल किया चर मेल खाते हैं तो:

public string XYZ(string p, string q) 

वेब सेवा कॉल की तरह कुछ हो गया है:

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

पी, क्यू जोड़े को PHP कॉलिंग में नामित और स्पष्ट किया जाना चाहिए।