Mam problem z otrzymaniem danych z serwera typu soap.
Najprościej w świecie otwieram sobie socket i uderzam do niego, a potem oczekuję odpowiedzi:
<?php $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($sock, $host, 8080); case 2: break; case 1: break; case 0: break; } if (!socket_write ($sock, $headers)) die("faild sending content to socket on $host: $errno $errstr"); if (!socket_write ($sock, $request_body)) die("faild sending content to socket on $host: $errno $errstr"); $response = ''; if(!socket_last_error($sock)){ if($data=socket_read($sock,512,PHP_NORMAL_READ)){ } } socket_close($sock); ?>
Tylko, że doświadczam dwóch stanów w miarę modysikacji kodu:
1. Skrypt się wykonuje bez końca i nic się nie wyświetla, bo nadal się wykonuje.
2. Firefox wyskakuje z okienkiem zapisz plik client.php (czyli nazwa mojego pliku), uruchominy z curla dostaję komunikat "empty request".
Najśmieszniejsze jest to, że używając klasy PEAR::SOAP dostaję pięknego XML-a, a patrząc w kod metody wysyłającej jest rozwiązane w analogiczny sposób poprzez fsockopen, a kiedy kopiuję ten kawałek kodu i próbuję użyć u siebie to mam tak jak w drugim przypadku - czyli zapisz plik/empty request.
wielkie dzięki na konkretną odpowiedź gdzie mogłem popełnić błąd.
pozdro