2010-06-19 1 views
0

간단한 ASP .NET 웹 서비스가 실행 중이며 PHP 클라이언트에서 호출하려고합니다. nusoap 비누 클라이언트를 사용하고 있습니다. 그러나PHP 클라이언트에서 ASP .NET 웹 서비스 호출

namespace WebService3 
{ 
/// <summary> 
/// Summary description for Service1 
/// </summary> 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[ToolboxItem(false)] 
public class Service1 : System.Web.Services.WebService 
{ 

    [WebMethod] 
    public string HelloWorld() 
    { 
     return "Hello World"; 
    } 

    [WebMethod] 
    public string add(int x, int y) 
    { 
     int z = x + y; 
     return z.ToString(); 
    } 
} 
} 

나는 그것이 않습니다 위의 PHP 코드를 실행하면 다음과 같이

<?php 
require_once('lib/nusoap.php');  
$wsdl="http://localhost:64226/Service1.asmx?wsdl"; 
$client=new soapclient($wsdl, 'wsdl'); 
$param=array('number1'=>'2', 'number2'=>'3'); 
echo $client->call('add',$param); 
?> 

내가 웹 서비스에서 만든 웹 방법은 다음

클라이언트 측의 PHP 코드 전달 된 매개 변수의 추가 된 값을 반환하지 않습니다. 대신 'Arrays'라는 단어를 미리 봅니다.

저는 PHP 프로그래밍 경험이 없습니다. 위의 코드가 잘못된 것입니까? 이 문제를 해결하고 PHP에서 웹 서비스를 호출하는 빠른 해결책이 필요합니다.

미리 감사드립니다.

답변

0

대체이 일

echo $client->__soapCall('add', $param); 

도 참조 this question하여이 줄

echo $client->call('add',$param); 

.

+0

$ client -> __ soapCall ('add', $ param)을 사용하면 다음 오류가 발생합니다. 정의되지 않은 메서드 호출 soapclient :: __ soapCall() – chathuradd

+0

@chathuradd 번들로 묶인 SoapClient PHP로. 이 경우 비누 라이브러리의 문서를 참조하십시오. – Artefacto

+0

이제 PHP로 번들 된 SoapClient를 사용하고 있습니다. 그러나 다른 코드를 사용하고 있습니다. :) 클래스 추가 { public $ x = 12; public $ y = 20; } $ client = new SoapClient ('http : // localhost : 64226/Service1.asmx? wsdl'); $ result = $ client-> add (새 추가()); echo $ result-> addResult; 그러나 언급 한 __soapCall 함수는 매개 변수 전달 오류로 인해 올바르게 작동하지 않습니다. 정확히 알아 내지 못했습니다. – chathuradd

0

이제 실행하면 echo $ result [ "addResult"];

출력을 멋지게 출력해야합니다.