PHP4: Отправить XML по HTTPS/POST через ЗАВИХРЕНИЕ?

Это на самом деле интересный вопрос, потому что он поднимает некоторые полезные идеи.

Если бы, например, ножницы из бумаги следовали законам математического неравенства , это была бы тривиальная проблема. Скажем, paper > rock > scissors является математически истинно (то есть paper > scissors, вопреки правилам игры):

class fist(object):

   def __init__(self, weapon):
       WEAPON_VALUES = {'paper': 2, 'rock': 1, 'scissors': 0}
       self.weapon_value = WEAPON_VALUES[weapon]

   def __gt__(self, other):
       return self.weapon_value > other.weapon_value

   def __lt__(self, other):
       return self.weapon_value < other.weapon_value

   def __eq__(self, other):
       return self.weapon_value == other.weapon_value

   def __ne__(self, other):
       return self.weapon_value != other.weapon_value    

paper = fist('paper')

rock = fist('rock')

scissors = fist('scissors')

Теперь мы можем проверить:

In [7]: paper > rock
Out[7]: True

In [8]: rock == rock
Out[8]: True

In [9]: paper < scissors
Out[9]: False

In [10]: scissors < rock
Out[10]: True

[ 1114] К сожалению, бумага-ножницы-камень имеет круговую логику, и поэтому обычное понятие неравенства в этом случае не работает (следовательно, paper < scissors оценивается как False).

Вы можете использовать пользовательские сопоставимые , как объяснено в другом ответе , но имейте в виду, что это вызывает парадоксы, такие как rock > scissors > paper == True, когда, конечно, rock < paper.

7
задан starmonkey 26 October 2008 в 23:40
поделиться

3 ответа

Если протокол, который Вы используете, является XML-RPC (похож на него на основе того, что Вы сказали), и Вы используете, по крайней мере, PHP 4.2, взглянули на http://phpxmlrpc.sourceforge.net/ для библиотек и ресурсов.

4
ответ дан 7 December 2019 в 01:28
поделиться

Используйте класс SoapClient, которому предоставляют большинство установок PHP

Пример:

$soap = new SoapClient("http://some.url/service/some.wsdl");
$args = array("someTypeName" => "someTypeValue"
              "someOtherTypeName" => "someOtherTypeValue");

$response = $soap->executeSomeService($args);

print_r($response);
-1
ответ дан 7 December 2019 в 01:28
поделиться

$ch = curl_init($serviceUrl);

    if( $this -> usingHTTPS() )
    {
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $this->sslVerifyHost);

    }

    curl_setopt($ch,CURLOPT_POST,TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);    
    curl_setopt ($ch, CURLOPT_POSTFIELDS, "OTA_request=".urlencode($this->xmlMessage));

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

    $this->xmlResponse = curl_exec ($ch);   

    $this -> callerFactory -> dbgMsg('xmlResponse: <hr><pre>'.htmlentities($this->xmlResponse).'</pre><hr>'. curl_error($ch));
    curl_close ($ch);

    $this->checkResponse();
3
ответ дан 7 December 2019 в 01:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: