2011-01-11 4 views
1

Я пытаюсь вызвать AspNet WebService (C# 3.5) из PHP (5.3.5) с помощью NuSoap.Php, Soap & ASMX WebService

<?php 
require_once('lib/nusoap.php'); 
$proxyhost = isset($_POST['proxyhost']) ? $_POST['proxyhost'] : ''; 
$proxyport = isset($_POST['proxyport']) ? $_POST['proxyport'] : ''; 
$proxyusername = isset($_POST['proxyusername']) ? $_POST['proxyusername'] : ''; 
$proxypassword = isset($_POST['proxypassword']) ? $_POST['proxypassword'] : ''; 

$client = new nusoap_client("http://localhost:53096/MyWebService.asmx?wsdl", 'wsdl', $proxyhost, $proxyport, $proxyusername, $proxypassword); 

$callParams= array(
'token' => "Token" 
, 'ppp' => array(1,2,3) 
); 

$result = $client->call("MyWebMethod", $callParams); 
?> 

Мой WebMethod очень просто:

[WebMethod()] 
    public int[] MyWebMethod(string token, int[] ppp) 
    { 
     return ppp; 
    } 

Когда я поставил точку останова в VisualStudio 2008, token в порядке, но ppp = пустой массив междунар (не нуль).

Любая идея о том, что не так с моим кодом?

ответ

0

я не знаю о NuSOAP, но родной класс PHP SoapClient имеет метод сбросить из последнего запроса XML отправляется на веб-службы, это, вероятно, хорошее место, чтобы начать

+0

Спасибо, это помогло мне сначала, но теперь я застрял с массивом массива int ... –

+0

Что вы имеете в виду? – Stephen

0

Если второе имя параметра - callParams, вы должны использовать одно и то же имя при вызове метода из php (не 'ppp').

+0

К сожалению, это было при переформатировании моего фрагмента кода. –