2011-08-04 6 views
1

Je travaille sur une application qui utilise un service Web. Ceci est un service privé, donc je ne peux pas poster le code WSDL ou le code généré ici, donc c'est plus une question pour un conseil général plutôt que des détails.Problèmes avec Sudz-c pour iOS, espace de noms manquant

J'ai alimenté le WSDL en Sudz-c. Le WSDL avait à l'origine quelques importations de XSD que sudz-c aurait négligé alors j'ai copié ceux-ci dans la section des types du WSDL.

J'utilise le code généré pour faire une demande au service mais je trouve qu'il manque un espace de nom à la demande pour les objets de type complexe que j'ai copiés dans la section types du WSDL.

Encore une fois, je sais que cette information est très générale, mais si quelqu'un d'autre a eu un problème similaire avec Sudz ce serait génial d'obtenir vos conseils.

+0

Juste une mise à jour pour toute personne qui est intéressé ou ayant des problèmes similaires, je n'ai jamais résoudre le problème si je devais coder manuellement le service web :(pas la plus belle des solutions mais j'ai presque fonctionner pleinement. Si vous trouvez-vous dans une situation similaire, un truc pratique est de vous assurer que vous définissez les en-têtes HTTP corrects pour chaque appel de service – bennythemink

Répondre

0

Impossible de trouver une réponse à cette façon a fini main juste coder les messages de service Web :(

2

Je sais que le fil Si un fichier WSDL comporte des fichiers XSD externes inclus/importés alors OUI, vous avez le droit d'avoir ces types XSD copiés dans WSDL (c'est-à-dire Directement EMBED dans WSDL plutôt que d'inclure/importer) .. Le code généré est presque parfait dans tous les sens car il génère des types pour XSD types aussi bien .. mais vous pourriez recevoir une ERREUR (même erreur dans plusieurs fichiers) .. qui sera une BASE-Class manquant de quelques types de requête/réponse .. après avoir analysé le code j'ai réalisé que cet espace de noms manquant n'est rien d'autre que le même objet SOAPObject donc j'ai remplacé cet espace de noms manquant par SOAPObject.h et utilisé SOAPObject interface/class comme classe de base. par exemple. dans mon cas

#include "SOAP.h" 

#include "sudz.h" 
@class sudz; 

@interface sudzAbstractRequestType : sudz 
{ 
} 

(Note: « Sudz » est le nom unique que vous utilisez lorsque le code générer en utilisant le site web/projet Sudz-C, dans votre cas, il peut être différent). J'ai changé le code (partout dans le projet où cette erreur a été rencontrée):

#include "SOAP.h" 

#include "SOAPObject.h" 
@class SOAPObject; 
//#include "sudz.h" 
//@class sudz; 

@interface sudzAbstractRequestType : SOAPObject//sudz 
{ 
} 

J'espère que cela aidera les autres ... J'étais coincé pendant des jours, mais ai plus tard, il travaille .. OK Bonne programmation :)