fsockopen запрос на мыло - PullRequest
       2

fsockopen запрос на мыло

0 голосов
/ 22 апреля 2010

Я пытаюсь отправить SOAP-сообщение в службу, используя php.
Я хочу сделать это с помощью fsockopen, вот код:

<?php

$ fp = @fsockopen ("ssl: //xmlpropp.worldspan.com", 443, $ errno, $ errstr);

if (! Is_resource ($ fp)) { die ('Ошибка вызова fsockopen с номером ошибки'. $ errno. '.'. $ errstr); }

$ soap_out = "POST / xmlts HTTP / 1.1 \ r \ n"; $ soap_out. = "Host: 212.127.18.11:8800\r\n"; // $ soap_out. = "Агент пользователя: MySOAPisOKGuys \ r \ n"; $ soap_out. = "Content-Type: text / xml; charset = 'utf-8' \ r \ n"; $ soap_out. = "Content-Length: 999 \ r \ n \ r \ n"; $ soap_put. = "Соединение: закрыть \ r \ n"; $ soap_out. = "SOAPAction: \ r \ n"; $ soap_out. = ' Worldspan Это тест «;

if(!fputs($fp, $soap_out, strlen($soap_out)))
    echo "could not write";
echo "<xmp>".$soap_out."</xmp>";
echo "--------------------<br>";

while (!feof($fp)) 
{
    $soap_in .= fgets($fp, 100);
}

echo "<xmp>$soap_in</xmp>";   

fclose($fp);
echo "ok";

приведенный выше код просто зависает. если я удаляю время, когда он печатает нормально, то я полагаю, что проблема в $ soap_in. = fgets ($ fp, 100)

Любые идеи о том, что происходит

Ответы [ 2 ]

0 голосов
/ 22 апреля 2010

Это не просто вопрос открытия сокета и записи в него «POST ....» - вам необходим полный стек HTTP для анализа возможных ответов (например, какие разные кодировки? Частичное содержимое?). Используйте cURL.

Причина, по которой в данный момент происходит сбой, вероятно, заключается в том, что удаленная система настроена на использование keepalive - что снова может быть решено с помощью правильного стека HTTP.

С

0 голосов
/ 22 апреля 2010

Рекомендую, используйте curl для мыльных действий. http://www.zimbra.com/forums/developers/9890-solved-simple-soap-admin-example-php.html#post52586

...