type de données datetime ne fonctionne pas dans le soap php
C'est mon code
$c = new soapclient('http://www.redbus.in/WS2/BookingService.asmx?wsdl',
array('authentication' => array('LoginID' => 'x','Password'=>'x')));
$timezone = new DateTimeZone('UTC');
$time='2012-04-17T16:50:45';
$date = new DateTime($time,$timezone);
$sourceid=array('SourceID'=>'244','DestinationID'=>'477','DateOfJourney' =>$date);
$stockprice = $c->GetAvailableRoutes($sourceid);
print_r($stockprint);
ça ne fonctionne pas en format datetime type de données de la variable
il indique une erreur comme ceci
Fatal error: Uncaught exception de type soapfault: [soap:Client] Serveur n'a pas pu lire demande. ---> Il ya une erreur dans le document XML (2, 252). ---> La chaîne " n'est pas valide AllXsd valeur. dans E:\xampplite\htdocs\index1.php:9 Stack trace: #0 [interne]: SoapClient->__call('GetAvailableRou...', Array) #1 E:\xampplite\htdocs\index1.php(9): SoapClient->GetAvailableRoutes(Array) #2 {principal} jeté dans E:\xampplite\htdocs\index1.php sur la ligne 9
OriginalL'auteur azarmfa | 2012-04-16
Vous devez vous connecter pour publier un commentaire.
Vous devez format, sinon vous jeter un objet DateTime dans votre tableau (PHP essaie de convertir une chaîne de caractères, qui ne fonctionne pas)
Par exemple:
Utilisation
Avez-vous essayer comme paramètres au lieu d'un tableau? Et avez-vous déjà essayer de vider le XML généré comme décrit dans la SoapClient::__getLastRequest() (voir les commentaires aussi)
quand je mets le format datetime il retourne "Fatal error: Uncaught exception de type soapfault: [soap:Client] Serveur n'a pas pu lire demande. ---> Il ya une erreur dans le document XML (2, 292). ---> string '2012 à 04-17IST00:00:00' n'est pas valide AllXsd valeur"
C'est pourquoi j'ai dit de regarder dans les commentaires aussi; vous avez besoin d'un bloc try-catch. --- Que faites-vous utilisé pour
format()
? C'est un format étrange que vous avez utilisé (2012-04-17...
). Savez-vous quel format ils accepter? (consultez la documentation de leur SAVON)J'ai récemment eu ce problème, et la solution a été de le mettre dans "Y-m-d' format (pas le temps) - et elle devait en fait être une chaîne de caractères, et pas seulement un objet avec un __toString (), méthode (j'ai été en utilisant un custom classe date). Si ils le veulent comme 04-03-2008, alors ils veulent probablement qu'il en soit de la d-mon ou m-d-Y format, qui sont tous les deux plutôt étrange formats. Essayer les deux.
OriginalL'auteur Dan Lee
J'ai eu un problème similaire lors de l'utilisation d'un service SOAP en PHP. Je le fixe à l'aide de:
$date->format('c');
(ISO 8601 date, ajouté en PHP 5, ressemble: 2004-02-12T15:19:21+00:00)
Merci, j'ai eu le même problème dans la requête soap et maintenant ça fonctionne
Cela m'a aidé lors de la fabrication d'un Savon Appel à Ontime360 de l'api
cela devrait être accepté de répondre à
OriginalL'auteur Thomas Jensen