PHP SOAP Extension

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
MeTaL-RoY
Δημοσιεύσεις: 67
Εγγραφή: 12 Μαρ 2003 16:58
Τοποθεσία: Athens
Επικοινωνία:

PHP SOAP Extension

Δημοσίευση από MeTaL-RoY » 22 Νοέμ 2008 12:30

Προσπαθώ να φτιάξω μια stateful webservice χρησιμοποιώντας το SOAP Extension. Για να το κάνω αυτό δημιουργώ ένα session Id από τον client και το περνάω μέσα στη συνάρτηση στο server όπου το χρησιμοποιώ. Αυτό λειτουργεί κανονικά και έχει το επιθυμιτό αποτέλεσμα.

Αν όμως αντί για κάποιο τυχαίο sessionID στείλω το sessionID του client τότε το script παγώνει και επιστρέφει μετά από ώρα το παρακάτω μήνυμα:

Fatal error: Uncaught SoapFault exception: [HTTP] Error Fetching http headers in C:\apache\htdocs\webServiceClient.php:18 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://localhost....', 'urn://some.urn...', 2, 0) #1 C:\apache\htdocs\webServiceClient.php(18): SoapClient->__soapCall('hello', Array) #2 {main} thrown in C:\apache\htdocs\webServiceClient.php on line 18

client code:

Κώδικας: Επιλογή όλων

<?php
// webServiceClient.php
   session_start&#40;&#41;;
   $sessionId=session_id&#40;&#41;; //$sessionId=session_id&#40;&#41;."1"; //if i change the session id a bit, by adding a number it works fine.
   $client = new SoapClient&#40;null, array&#40;
      'location' => "http&#58;//localhost/webServiceServer.php",
      'uri'      => "urn&#58;//some.urn.org/res",
      'soap_version' => SOAP_1_2,
      'trace'    => 1 &#41;&#41;;
   $return = $client->__soapCall&#40;"hello",array&#40;"world",$sessionId&#41;&#41;;
   echo $return;
?>
Server Code:

Κώδικας: Επιλογή όλων

<?php
//webServiceServer.php
function hello&#40;$someone,$id&#41; &#123; 
 session_id&#40;$id&#41;;
 session_start&#40;&#41;;
 if&#40;!isset&#40;$_SESSION&#91;'rand'&#93;&#41;&#41; &#123;
  $_SESSION&#91;'rand'&#93;=rand&#40;&#41;;
 &#125;
   return "Hello " . $someone . "! - SOAP 1.2" . $id . "  - " .$_SESSION&#91;'rand'&#93;;
&#125; 
   $server = new SoapServer&#40;null, array&#40;
      'uri' => "urn&#58;//some.urn.org/res",
      'soap_version' => SOAP_1_2&#41;&#41;;
   $server->addFunction&#40;"hello"&#41;; 
   $server->handle&#40;&#41;; 
?>
καμιά ιδέα για το γιατί μπορεί να κολάει; Επιτρέπεται να χρησιμοποιήσω το ίδιο sessionID?
FREE SMS Notification for Emails: SMS Notifier +30 free sms/day
FREE PHP and C# .NET Video Tutorials: Video Tutorials

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες