Call asp.net serwis WWW z PHP z wieloma parametrami
Używam metody używającej klasy SoapClient na stronie php do wywołania usługi internetowej w asp.net miejscu.
Oto kod php.
$client = new SoapClient("http://testurl/Test.asmx?WSDL");
$params = array( 'Param1' => 'Hello',
'Param2' => 'World!');
$result = $client->TestMethod($params)->TestMethodResult;
echo $result;
Problem polega na tym, że odzyskuję tylko pierwszy parametr (Param1)" Hello " I wydaje się, że jest problem z Param2. Oto asp.net metoda.
[WebMethod]
public string TestMethod(string Param1, string Param2)
{
return Param1 + " " + Param2;
}
Czego mi brakuje, aby uzyskać Hello World!
w odpowiedzi?
11
3 answers
Spróbuj tak:
$client = new SoapClient("http://testurl/Test.asmx?WSDL");
$params->Param1 = 'Hello';
$params->Param2 = 'World!';
$result = $client->TestMethod($params)->TestMethodResult;
20
Author: Darin Dimitrov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-14 22:54:51
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-14 22:54:51
***********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;
}
}
1
Author: M.Ganji,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-20 04:55:20
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-20 04:55:20
Szukałam w googlach wielu parametrów. Cały wątek nie powiedział, co następuje. Podczas wywoływania php .asmx web service, przekazywanie parametrów musi być zgodne ze zmiennymi używanymi w web service of:
public string XYZ(string p, string q)
Wywołanie usługi internetowej musi być coś w stylu:
$params = array( "p" => $name1, "q" => $name2 );
Pary P, q muszą być nazwane i wyjaśnione w wywołaniu php.
1
Author: TLCW,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-01 07:47:33
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-01 07:47:33