代码之家  ›  专栏  ›  技术社区  ›  Enrique

将旧的nusoap代码转换为php核心SOAP函数

  •  2
  • Enrique  · 技术社区  · 14 年前

    我一直在用codeigner(php框架)测试nusoap,但似乎nusoap不准备使用最新的php 5.3,即使我下载了一个修补后的php5.3的nusoap版本。

    我有以下代码:

    require_once(APPPATH.'libraries/NuSOAP/lib/nusoap'.EXT); //includes nusoap
    $n_params = array('CityName' => 'San Juan', 'CountryName' => 'Argentina');
    $client = new nusoap_client('http://www.webservicex.net/globalweather.asmx?WSDL');
    $client->setHTTPProxy("10.2.0.1",6588,"","");
    $result = $client->call('GetWeather', $n_params);

    你能帮我把这些函数转换成php-soap函数吗?包括代理功能?

    2 回复  |  直到 11 年前
        1
  •  2
  •   Ivo Sabev    14 年前
    require_once(APPPATH.'libraries/NuSOAP/lib/nusoap'.EXT); //includes nusoap
    $n_params = array('CityName' => 'San Juan', 'CountryName' => 'Argentina');
    $client = new nusoap_client('http://www.webservicex.net/globalweather.asmx?WSDL');
    $client->setHTTPProxy("10.2.0.1",6588,"","");
    $result = $client->call('GetWeather', $n_params);
    

    变成

    $url = 'http://www.webservicex.net/globalweather.asmx?WSDL';
    $params = array(
        'proxy_host' => '10.2.0.1',
        'proxy_port' => '6588'
        );
    $client = new SoapClient($url, $params);
    $client->__soapCall('GetWeather', $n_params);
    
        2
  •  -1
  •   Enrique    14 年前

    以下代码是调用上述WebService的正确方法。我刚修改了$ser_参数数组。现在它有一个子数组

    $url = 'http://www.webservicex.net/globalweather.asmx?WSDL';
    $conn_params = array(
    'proxy_host' => '10.2.0.1',
    'proxy_port' => '6588'
    );

    $ser_params = array (
    'GetWeather' => array (
    "CityName" => "San Juan",
    "CountryName" => "Argentina"
    )
    ;

    $client = new SoapClient($url, $conn_params);
    $result = $client->__soapCall('GetWeather', $ser_params);
    print_r ($result);