Intereting Posts
Получение WordPress Post ID текущего сообщения php-переменная в html нет другого пути: <? php echo $ var; ?> Бесконечное соответствие подвыражений (регулярных выражений) возвращает только одно совпадение Неустранимая ошибка: вызов функции-члена get () для не-объекта в C: \ wamp \ www \ ci \ application \ models \ site_model.php в строке 6 SHA256 в Go и PHP дают разные результаты как читать xml-файл с URL-адреса, используя php PHPExcel устанавливает границу и формат для всех листов в электронной таблице. Получить имя часового пояса PHP из широты и долготы? График работы персонала в течение нескольких минут Проверьте Gmail IMAP через PHP для новых сообщений в цикле Служба проверки URL-адреса для вредоносного ПО или фишинга? Объединение видеофайлов с помощью PHP Использование Apostrophe в значении MySQL ENUM, которое будет заполнять поле со списком HTML для поиска в базе данных Лучший способ сохранить зависящие от языка строковые ресурсы в PHP? HTML-код, не работающий над вызовом jquery, вместо этого выводит HTML-код

Вызовите веб-службу asp.net с PHP с несколькими параметрами

Я использую метод с использованием класса SoapClient на php-странице для вызова веб-службы на сайте asp.net.

Вот PHP-код.

$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; } 

Что мне не хватает, чтобы получить Hello World! в ответе?

Попробуйте вот так:

 $client = new SoapClient("http://testurl/Test.asmx?WSDL"); $params->Param1 = 'Hello'; $params->Param2 = 'World!'; $result = $client->TestMethod($params)->TestMethodResult; 
 ***********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; } } 

Я искал поисковые запросы для многопараметрических вызовов. Вся нить не сказала следующее. Когда php вызывает веб-службу .asmx, передача параметров MUST MATCH использует переменные, используемые в веб-службе:

 public string XYZ(string p, string q) 

Вызов веб-службы должен быть примерно таким:

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

p, q пар должны быть названы и уточнены при вызове php.