使用多个参数从PHP调用asp.net web服务
我正在使用php页面中使用SoapClient类的方法来调用asp.net站点中的web服务 下面是php代码使用多个参数从PHP调用asp.net web服务,php,web-services,asmx,Php,Web Services,Asmx,我正在使用php页面中使用SoapClient类的方法来调用asp.net站点中的web服务 下面是php代码 $client = new SoapClient("http://testurl/Test.asmx?WSDL"); $params = array( 'Param1' => 'Hello', 'Param2' => 'World!'); $result = $client->TestMethod($params)->Te
$client = new SoapClient("http://testurl/Test.asmx?WSDL");
$params = array( 'Param1' => 'Hello',
'Param2' => 'World!');
$result = $client->TestMethod($params)->TestMethodResult;
echo $result;
问题是,我只得到了第一个参数(Param1)“Hello”,似乎Param2有问题。
下面是asp.net方法
[WebMethod]
public string TestMethod(string Param1, string Param2)
{
return Param1 + " " + Param2;
}
我错过了什么才能得到你好,世界代码>在响应中?尝试以下操作:
$client = new SoapClient("http://testurl/Test.asmx?WSDL");
$params->Param1 = 'Hello';
$params->Param2 = 'World!';
$result = $client->TestMethod($params)->TestMethodResult;
**********index.php******************
*******************WebServiceFinal.asmx?WSDL**************************
使用制度;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Services;
///
///WebServiceFinal的摘要说明
///
[WebService(命名空间=”http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
//要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。
[System.Web.Script.Services.ScriptService]
公共类WebServiceFinal:System.Web.Services.WebService{
公共WebServiceFinal(){
//如果使用设计的组件,请取消注释以下行
//初始化组件();
}
[网络方法]
公共字符串HelloWorld(){
返回“你好世界”;
}
[网络方法]
公共字符串测试方法(字符串参数1,字符串参数2)
{
返回Param1+“”+Param2;
}
[网络方法]
公共字符串ShowNameFamely(字符串参数1,字符串参数2)
{
返回Param1+“”+Param2;
}
}
我在谷歌上搜索多参数调用。
所有的线程没有告诉下面的内容。
当php调用.asmx web服务时,参数的传递必须与以下web服务中使用的变量相匹配:
public string XYZ(string p, string q)
web服务调用必须类似于:
$params = array( "p" => $name1, "q" => $name2 );
p、 q对必须在php调用中命名和澄清 一个简单的问题。我的代码不起作用的原因是b/c它被作为一个数组类型的参数传递?你能告诉我TestMethodResult在哪里吗?什么是$params对象?如何设置它?$result2=$client->ShowNameFamely($params)->ShowNameFamelyResult;
$params = array( "p" => $name1, "q" => $name2 );