|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Hello
snif... oui je sais programmer en php mais là j'arrive pas à comprendre comment marche SOAP j'ai besoin d'utiliser ce service http://gepir.gs1.org/v31/router.asmx?op=GetItemByGTIN mais je comprends pas comment ça marche,... combien de paraètres passer etc,... la seule chose que je sais, cest que je veux passer le code 3274080005003 et obtenir le résultat en français j'ai déjà fait ça en PHP mais impossible d'aller plus loin sans que ça plante grrr Code :
$soapClient = new SoapClient("http://gepir.gs1.org/v31/router.asmx?wsdl"); )merci d'avance pour votre aide Phil |
|
|
00
|
|
|
#2 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 897 ![]() |
Attrape les SOAP Fault avec un try catch. Active les traces sur ton client SOAP et tu y verra plus clair dans les échanges et les raisons possibles d'échec. Et puis pense à activer le reporting d'erreur !
Code :
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
||
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Merci pour la réponse
j'ai vraiment du mal à comprendre la logique SOAP, j'trouve qu'il y a peu de documentation comparé à ce qu'on peut trouver pour le PHP par exemple J'vais essayer ton code et essayer de comprendre Encore merci |
|
|
00
|
|
|
#4 | |||
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Donc ! c'est déjà mieux !
en cherchant les fonctions j'obtiens ça Citation:
Code :
Warning: SOAP Fault: (faultcode: soap:Server, faultstring: Server was unable to process request. ---> Object reference not set to an instance of an object.) merci d'avance pour vos réponses |
|||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Ah !!!
j'ai mis ça Code :
$client->__soapCall("GetPartyByGTIN","3011360004420","FR"); je régresse -> ça confirme que le code avant était correcte avec un array Mais je comprends pas pourquoi il refuse les arguments que je lui passe dans le tableau ,... c'est possible qu'ils aient un prob sur leur serveur ? |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Bon là je comprends pas !
j'ai fait exactement ce qu'ils disent sur les forums $client->__soapCall("GetPartyByGTIN",array("partyGtin" => "3011360004420")); et j'obtiens Object reference not set to an instance of an object. comment savoir si le prob vient de mon côté ou du serveur ? |
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Bon quand j'appelle la fonction GepirVersion2 j'obtiens une réponse :
Code :
|
||
|
|
00
|
|
|
#8 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 897 ![]() |
C'est toujours compliqué de savoir lequel du client ou du serveur fais n'importe quoi. Mon conseil: télécharge le wsdl du serveur et fais quelques tests avec SoapUI par exemple ou carrément en implémentant un serveur à toi en PHP qui réponds des trucs aléatoires et/ou déterministes. ça te permettra de savoir qui du serveur ou du client ne respecte pas la définition du webservice.
Concernant Soap::__soapCall, c'est un alias de Soap::__call en fait (ou alors c'est l'inverse, d'ailleurs on s'en fout). Le principe est le suivant:
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
merci mais sans te demander de faire le truc à ma place,
tu en penses quoi de ce web service ? j'ai l'impression qu'il disent qu'iol ne peut être exécute que sur une machine locale, pas sur leur serveur,...
|
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() ![]() Clément Développeur informatique Inscription : décembre 2006 Messages : 234 ![]() |
Le message "Object reference not set to an instance of an object" fait fortement au NullReferenceException du .NET. Donc à priori, cette exception venait surement du web service. Le serveur a eu une exception, et t'a juste renvoyé le message d'erreur qu'il a eu (pas très bavard, mais c'est normal).
Après, s'il s'est mal comporté, c'est peut être aussi que tu lui as donné des paramètres bizarres en entrée, et que lui ne prenait pas la peine de les vérifier... |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
merci pour la réponse, mais si j'ai regardé les données attendues en entrée et il n'y en as qu'une pour cette fonction,...
j'ai passé plus de 3 jours à chercher !! et j'arrive pas à trouver, c'est pour ça que je vous demande votre aide,... pourriez-vous regarder http://gepir.gs1.org/v31/router.asmx et me dire ce que vous en pensez ? SVP ? |
|
|
00
|
|
|
#12 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 897 ![]() |
Aaah la bonne vieille absence de validation
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Quoi de leur côté ? le wsdl n'est pas valide ?
c'est donc côté serveur non ? |
|
|
00
|
|
|
#14 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 897 ![]() |
Comme j'ai dit plus haut, valide le WSDL avec des outils comme SOAPUI
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Merci mais ça m'apporte quoi ? je vais faire la validation comme tu dis mais si c'est pas valide, c'est inutilisable ?
et puis je suis un client -> que faire si il a un prob sur leur serveur ? |
|
|
00
|
|
|
#16 | |||
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Bon,...
j'ai essayé de faire comme dans les exemples qu'ils donnent : Citation:
Code :
je ne sais pas si il faut préciser la version de SOAP (ils disent qu'il y a une les version 1.1 et 1.2) et puis il y a la version (1.0), c'est l'attribut d'une balise et je sais pas comment le faire passer,... sinon toujours la même erreur : j'en peux plus,... bon allons voir la validation,.. |
|||
|
|
00
|
|
|
#17 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 897 ![]() |
T'auras pas vraiment le choix, s'ils veulent pas patcher (tu dois pour ça leur coller un ticket s'ils ont un outil de ticketing), tu devra t'adapter.
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
|
00
|
|
|
#18 | |
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
Ouaaaaa !!!!!!!!!!!!!!!!!
![]() ça marche avec le logiciel !!! j'ai mis ça et ça m'envoie la réponse !!! maintenant il faut que je comprenne ce qui se passe avec php et comment envoyer ce message il affiche "Request 1" dans l'arbre, il faut que je l'appelle ? Citation:
|
|
|
|
00
|
|
|
#19 | |
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
il envoie ça en entête
il faut je j'ajoute quelquechose dans mon code ? Citation:
|
|
|
|
00
|
|
|
#20 | ||
|
Invité de passage
![]() Inscription : octobre 2004 Messages : 28 ![]() |
ok je crois que je comprends : php envoie ce code, c'est pas du tout la même chose grrrr
pourquoi ajoute-il des "key" "value" "ns2" ? Code :
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com