Services Web : Références
Ce chapitre présente le framework WebServicesCore disponible dans Mac OS X version 10.2. Il décrit les constantes, les types de données et les fonctions qui sont compris dans le framework.
L’interface de programmation pour le WebServicesCore.framework est déclarée dans le fichier en-tête suivant :
Mac OS X (10.2): WSMethodinvocation.h
Fonctions Services Web
Les API suivantes sont fournies dans le WebServicesCore.framework :
- WSMethodinvocationCreate.
- WSMethodinvocationCreateFromSerialization
- WSMethodinvocationCopySerialization.
- WSMethodinvocationSetParameters.
- WSMethodinvocationCopyParameters.
- WSMethodinvocationSetProperty.
- WSMethodinvocationCopyProperty.
- WSMethodinvocationInvoke.
- WSMethodinvocationCallBackProcPtr.
- WSMethodinvocationSetCallBack.
- WSMethodinvocationScheduleWithRunLoop.
- WSMethodinvocationUnscheduleFromRunLoop.
- WSMethodResultIsFault.
- WSMethodinvocationSerializationProcPtr.
- WSMethodinvocationAddSerializationOverride.
- WSMethodinvocationDeserializationProcPtr.
- WSMethodinvocationAddDeserializationOverride.
- WSGetWSTypeIDFromCFType.
- WSGetCFTypeIDFromWSTypeID.
- WSMethodinvocationGetTypeID.
- WSMethodinvocationRef.
Fonctions d’Appel de Méthode
Voici la liste des fonctions d’appel de méthode fournies dans le WebServicesCore.framework.
WSMethodinvocationCreate |
Crée un objet d’appel de méthode de Services Web.
WSMethodinvocationRefWSMethodinvocationCreate(CFURLRef url,
CFStringRef methodName,
CFStringRef protocol);
url- Le point final du service.
methodName- Le nom de la méthode à appeler.
Description des Paramètres
- Résultat de la fonction
- Un objet WSMethodinvocationRef qui peut être passé à WSMethodinvocationInvoke ou programmé dans une boucle d’exécution.
Commentaires
Cette fonction crée un objet d’appel de méthode de Services Web. Cet objet peut être exécuté de manière synchrone ou programmé dans une boucle d’exécution pour être lancé de manière asynchrone.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
WSMethodinvocationCreateFromSerialization |
Crée un objet d’appel de méthode de Services Web à partir d’un contrat précédemment séquencé.
WSMethodinvocationRef WSMethodinvocationCreateFromSerialization (CFDataRef contract);
contract- Le résultat d’un WSMethodinvocationRef précédemment séquencé.
Description des Paramètres
- Résultat de la fonction
- Un objet WSMethodinvocationRef qui peut être passé à WSMethodinvocationInvoke ou programmé dans une boucle d’exécution.
Commentaires
Cette fonction crée un objet d’appel de méthode de Services Web à partir d’un contrat précédemmenr séquencé.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
WSMethodinvocationCopySerialization |
Crée une version séquencée de l’appel de méthode qui peut être reconstituée plus tard.
CFDataRef WSMethodinvocationCopySerialization(WSMethodinvocationRef invocation);
invocation- L’appel à séquencer.
Description des Paramètres
- Résultat de la fonction
- Un CFDataRef.
Commentaires
Cette fonction crée une version séquencée de l’appel de méthode qui peut être reconstituée plus tard.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
WSMethodinvocationSetParameters |
Règle les paramètres d’un appel de méthode.
WSMethodinvocationSetParameters(WSMethodinvocationRef invocation,
CFDictionaryRef parameters,
CFArrayRef parameterOrder);
invocation- L’objet appel.
parameters- Un CFDictionaryRef de clés CFString et de valeurs CFTypeRef.
parameterOrder- Un CFArrayRef de noms de paramètres CFString.
Description des Paramètres
Commentaires
Cette fonction règle les paramètres d’un appel de méthode. Le parameterOrder peut être NULL, auquel cas l’ordre des paramètres est indéfini. S’il n’est pas NULL et que le dictionnaire de paramètres contient plus de paramètres que spécifié par l’ordre, le comportement est indéfini. Si le parameterOrder spécifi plus de paramètres que présents dans le dictionnaire, le comportement est indéfini.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
WSMethodinvocationCopyParameters |
Copie les paramètres de l’appel.
CFDictionaryRef WSMethodinvocationCopyParameters(WSMethodinvocationRef invocation,
CFArrayRef *parameterOrder);
invocation- Le voisinnage qui doit être copié.
parameterOrder- Un pointeur vers un CFArray qui recevra les noms, dans l’ordre spécifié, des valeurs de paramètres en entrée. Ce paramètre peut être nul.
Description des Paramètres
Commentaires
Cette fonction copie les paramètres de l’appel. Le dictionnaire qui en résulte contient le dictionnaire des paramètres. Le paramètre de sortie parameterOrder, s’il n’est pas nul, contiendra l’ordre utiliser pour séquencer les paramètres.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
WSMethodinvocationSetProperty |
Ajoute des “propriétés” à l’appel d’une méthode.
void WSMethodinvocationSetProperty(WSMethodinvocationRef invocation,
CFStringRef propertyName,
CFTypeRef propertyValue);
invocation- L’invocation.
propertyName- Le nom CFStringRef de la propriété à modifier.
propertyValue- Un CFTypeRef contenant la valeur de la nouvelle propriété.
Description des Paramètres
- Résultat de la fonction
- Aucun.
Commentaires
Cette fonction ajoute des “propriétés” à l’appel d’une méthode. Ces propriétés peuvent être définies par l’utilisateur ou l’une des propriétés déclarées dans le WebServicesCore (qui peut modifier le comportement de l’appel). Toutes les propriétés déclarées dans le WebServicesCore démarreront avec la chaîne “kWS”, par exemple, kWSHTTPFollowsRedirects.
Les propriétés sont séquencées avec le contrat, vous souhaiterez peut-être éviter d’associer des pointeurs brut en CFNumber, par exemple.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultérieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
WSMethodinvocationCopyProperty |
Retourne une propriété d’un appel.
CFTypeRef WSMethodinvocationCopyProperty(WSMethodinvocationRef invocation,CFStringRef propertyName) ;
invocation- L’invocation.
propertyName- Le nom de la propriété à récupérer.
Description des Paramètres
Commentaires
Cette fonction retourne une propriété d’une invocation. Si le résultat est NULL, la propriété n’existe pas. Du fait que c’est un appel du type Copy, vous devez libérer le résultat.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
WSMethodinvocationInvoke |
Exécute l’appel.
CFDictionaryRef WSMethodinvocationInvoke(WSMethodinvocationRef invocation) ;
invocation- L’invocation.
Description des Paramètres
- Résultat de la fonction
- Un CFDictionaryRef contenant le résultat de l’exécution ou une erreur avec des informations optionnelles de déboguage.
Commentaires
Cette fonction exécute l’invocation. Si l’appel est résussi, le résultat contient le résultat de l’invocation. Si, pour n’importe quelle raison, l’invocation échoue, y compris pour un manque de mémoire ou des paramètres invalides, alors le résultat contiendra une structure d’erreur. Vous devrez libérer le résultat une fois que vous en avez fini avec.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
Fonctions de Rappel
Les appels de Services Web décrits dans cette section implémentent la variante asynchrone de la routine WSMethodinvocationInvoke.
Lors de l’utilisation de ces appels, la stratégie à adopter consiste à plannifier l’invocation dans une boucle d’exécution donnée. Lorsque la fonction invoquée est terminée, elle appelle la fonction de rappel spécifiée en lui passant le résultat de l’exécution. La fonction de rappel est responsable de la libération de la référence du résultat.
Votre code est responsable de la déplannification de la fonction invoquée, qu’elle soit terminée ou pas. Vous pouvez replannifier une fonction après qu’elle soit terminée. Lorsque vous déplannifiez une fonction, le Rappel n’est pas invoqué.
Si une erreur réseau survient, l’entrée kWSFaultString du résultat contiendra une description textuelle de l’erreur, kWSFaultCode contiendra kWSNetworkingFault et kWSFaultExtra sera un dictionnaire contenant deux valeurs CFNumber appelées kWSStreamErrorDomain et kWSStreamErrorError.
WSMethodinvocationCallBackProcPtr |
Prototype le Rappel effectué lorsqu’une invocation asynchrone est terminée.
typedef CALLBACK_API(void, WSMethodinvocationCallBackProcPtr)
(WSMethodinvocationRef invocation, void *info, CFDictionaryRef outRef);
invocation- L’invocation qui vient de se terminer.
info- Données privées de rappel.
outRef- Un CFDictionaryRef contenant le résultat de l’exécution ou une erreur, ainsi que des informations optionnelles de déboguage.
Description des Paramètres
Commentaires
Cette fonction de rappel prototype le rappel effectué lorsqu’une invocation asynchrone est terminée. A ce rappel est passé une référence de l’invocation qui vient de se terminer, un pointeur vers des données privées et un dictionnaire qui contient la valeur de retour ou l’erreur retournée par cette invocation. La fonction de rappel est responsable de la libération du dictionnaire lorsqu’il n’est plus utilisé.
WSMethodinvocationSetCallBack |
Met en place la fonction de rappel suite à invocation d’une méthode asynchrone.
extern void
WSMethodinvocationSetCallBack(WSMethodinvocationRef invocation,
WSMethodinvocationCallBackProcPtr clientCB,
WSClientContext *context);
invocation- La fonction invoquée.
clientCB- Un ProcPtr à appeler lorsque l’invocation est arrivée à terme.
context- Un pointeur vers un WSClientContext. La structure sera copiée.
Description des Paramètres
Commentaires
Cette fonction met en place la fonction de rappel suite à invocation d’une méthode asynchrone. Vous pouvez l’appeler avec un clientCB et un context positionnés à NULL pour effacer le rappel de l’invocation.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
WSMethodinvocationScheduleWithRunLoop |
Plannifie l’invocation à lancer dans la boucle d’exécution.
extern void
WSMethodinvocationScheduleWithRunLoop(WSMethodinvocationRef invocation,
CFRunLoopRef runLoop,
CFStringRef runLoopMode);
invocation- L’invocation.
runLoop- La boucle d’exécution dans laquelle plannifier l’invocation.
runLoopMode- Le type de boucle d’exécution.
Description des Paramètres
Commentaires
Cette fonction plannifie l’invocation à lancer dans la boucle d’exécution.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
WSMethodinvocationUnscheduleFromRunLoop |
Déplannifie l’invocation à partir d’une boucle d’exécution et d’un type de boucle donnés.
extern void
WSMethodinvocationUnscheduleFromRunLoop(WSMethodinvocationRef invocation,
CFRunLoopRef runLoop,
CFStringRef runLoopMode);
invocation- L’invocation.
runLoop- La boucle d’exécution dans laquelle déplannifier l’invocation.
runLoopMode- Le type de boucle.
Description des Paramètres
Commentaires
Cette fonction déplannifie l’invocation à partir d’une boucle d’exécution et d’un type de boucle donnés. Si l’invocation n’est pas terminée, son Rappel ne sera pas lancé.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
WSMethodResultIsFault |
Retourne TRUE si le résultat de l’invocation de méthode contient une erreur.
extern Boolean WSMethodResultIsFault(CFDictionaryRef methodResult);
methodResult- La référence du résultat.
Cette fonction renvoie TRUE si le résultat de l'invocation de méthode contient une erreur.
Description des Paramètres
Commentaires
Interrogation du résultat : Si le résultat est une erreur, regardez dans les champs kWSFaultCode, kWSFaultString et kWSFaultExtra du dictionnaire retourné. Si ce n’est pas une erreur, kWSMethodinvocationResult contiendra le résultat de l’exécution. Si des informations de déboguage ont été demandées, elles seront disponibles aussi dans le doctionnaire.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
Support de la Modification du Séquençage et du Déséquençage
Vous pouvez ajouter des rappels de séquençage et de déséquençage pour des types personnalisés ou des types qui ne sont pas gérés par le framework, comme indiqué dans cette section. Notez que ces propriétés ne sont pas séquencées si l’invocation est séquencée.
WSMethodinvocationSerializationProcPtr |
Prototype la fonction de rappel pour une procédure de séquençage personnalisé.
typedef CALLBACK_API(CFStringRef, WSMethodinvocationSerializationProcPtr)
(WSMethodinvocationRef invocation, CFTypeRef obj, void *info);
invocation- L’invocation en cours de séquençage.
obj- Le CFTypeRef à séquencer.
info- Données privées de Retour.
Un CFStringRef contenant du XML valide. L’appelant de ce rappel devra libérer la chaîne.
Description des Paramètres
Commentaires
Cette fonction prototype la fonction de rappel pour une procédure de séquençage personnalisé.Ce rappel est appelé lorsqu’un type a le CFTypeID donné. Le rappel devrait retourner une snippet XML qui sera “comprise” par le serveur comme étant un séquençage correct pour un type donné. Si le rappel retourne NULL, le séquenceur par défaut sera utilisé.
WSMethodinvocationAddSerializationOverride |
Spécifie un rappel qui sera appelé pour produire le code XML qui représente le séquençage d’une référence de type donnée.
extern void
WSMethodinvocationAddSerializationOverride(WSMethodinvocationRef invocation,
CFTypeID objType,
WSMethodinvocationSerializationProcPtr serializationProc,
WSClientContext *context);
invocation- L’invocation.
objType- Le CFTypeID de l’objet.
serializationProc- Le rappel invoqué.
context- Un pointeur vers un WSClientContext. La structure sera copiée.
Description des Paramètres
Commentaires
Cette fonction spécifie un rappel qui sera appelé pour produire le code XML qui représente le séquençage d’une référence de type donnée. Voir WSDescription.h pour une liste des CFTypes pour lesquels il existe actuellement des séquenceurs. Si votre rappel retourne NULL, le séquenceur par défaut sera utilisé.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
WSMethodinvocationDeserializationProcPtr |
Prototype la fonction de Rappel pour un déséquenceur personnalisé.
typedef CALLBACK_API(CFTypeRef, WSMethodinvocationDeserializationProcPtr)
(WSMethodinvocationRef invocation,
CFXMLTreeRef msgRoot,
CFXMLTreeRef deserializeRoot,
void *info);
invocation- L’invocation en cours d’exécution.
msgRoot- L’élément arborescence racine.
deserializeRoot- L’élément arborescence qui doit être déséquencé.
info- Donnée de Rappel privée.
Description des Paramètres
- Résultat de la fonction
- Un CFTypeRef représentant la donnée déséquencée ou NULL pour permettre au déséquenceur par défaut d’agir.
Commentaires
Cette fonction prototype la fonction de Rappel pour un déséquenceur personnalisé. A ce rappel est passé une référence de l’invocation en cours d’exécution, la racine de l’arborescence de la réponse, le noeud en cours à déséquencer et un pointeur vers des données privées. Le retour doit être un objet CFTypeRef valide (qui sera libéré par l’appelant) ou NULL pour permettre au déséquenceur par défaut d’agir.
WSMethodinvocationAddDeserializationOverride |
Spécifie un Rappel à effectuer lors de l’analyse de la réponse XML d’une méthode.
extern void
WSMethodinvocationAddDeserializationOverride(
WSMethodinvocationRef invocation,
CFStringRef typeNamespace,
CFStringRef typeName,
WSMethodinvocationDeserializationProcPtr deserializationProc,
WSClientContext *context);
invocation- L’invocation.
typeNamespace- L’espace de nommage complètement résolu pour un type spécifique. Si NULL, l’espace de nommage par défaut sera utilisé. Par exemple, ce champ pourrait contenir : CFSTR(”http://www.w3.org/2001/XMLSchema-instance”).
typeName- Le nom, non qualifié, du type. Ce paramètre ne doit pas être NULL.
deserializationProc- Un ProcPtr à appeler pour effectuer le déséquençage.
context- Un pointeur vers un WSClientContext. La structure sera copiée.
Description des Paramètres
Commentaires
Cette fonction spécifie un Rappel à effectuer lors de l’analyse de la réponse XML d’une méthode. Le callback devrait retourner un CFTypeRef contenant la valeur de l’objet déséquencé. Si le rappel retourne NULL, le déséquenceur par défaut sera utilisé.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib : Non disponible
CFM non Carbon : Non disponible
Autres Fonctions
Ce qui suit est la liste d’autres fonctions et de leur description de paramètres.
WSGetWSTypeIDFromCFType |
Retourne le WSTypeID associé à CFTypeRef.
extern WSTypeID
WSGetWSTypeIDFromCFType(CFTypeRef ref);
ref- Un objet CFTypeRef.
Le WSTypeID utilisé dans le séquençage de l’objet. Si aucun WSTypeID ne correspond, eWSUnknownType est retourné.
Description des Paramètres
Commentaires
Cette fonction retourne le WSTypeID associé à CFTypeRef. Il n’y a pas de relations un pour un entre les CFTypeID et les WSTypesID. En conséquence, une instance réelle d’un CFType doit être passée.
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib: non disponible
Non-Carbon CFM: non disponible
WSGetCFTypeIDFromWSTypeID |
Retourne le CFTypeID associé à un WSTypeID donné.
extern CFTypeID
WSGetCFTypeIDFromWSTypeID(WSTypeID typeID);
typeID- Une constante WSTypeID.
Description des Paramètres
- Résultat de la fonction
- Un CFTypeID, ou 0 si rien n’est trouvé.
Commentaires
Cette fonction retourne le CFTypeID associé à un WSTypeID donné. Les CFTypeID ne sont valides que durant une instance particulière d’un processus et ne doivent pas être utilisés comme des valeurs statiques.
typedef CALLBACK_API( void *, WSClientContextRetainCallBackProcPtr )(void * info);typedef CALLBACK_API( void , WSClientContextReleaseCallBackProcPtr )(void * info);typedef CALLBACK_API( CFStringRef , WSClientContextCopyDescriptionCallBackProcPtr )(void * info);
WSMethodinvocationGetTypeID |
extern CFTypeID WSMethodinvocationGetTypeID(void);
Commentaires
Considérations Spéciales
Threading Mac OS X
Sans Thread
Disponibilité
Mac OS X : version 10.2 et ultèrieure dans le WebServicesCore.framework
CarbonLib: non disponible
Non-Carbon CFM: non disponible
Web Services Data Types
WSClientContext |
Plusieurs appels dans WebServicesCore.h prennent comme argument une fonction de Rappel avec un pointeur context optionnel. Le context est copié et le pointeur info retenu. Quand le Rappel est effectué, le pointeur info est passé au Rappel.
struct WSClientContext {
CFIndex version;
void * info;
WSClientContextRetainCallBackProcPtr retain;
WSClientContextReleaseCallBackProcPtr release;
WSClientContextCopyDescriptionCallBackProcPtr copyDescription;
};
typedef struct WSClientContext WSClientContext;
version- Positionné à zéro.
info- Pointeur Info à passer au Rappel.
retain- Rappel effectué sur le pointeur info. Ce champ peut être NULL.
release- Rappel effectué sur le pointeur info. Ce champ peut être NULL.
copyDescription- Rappel effectué sur le pointeur info. Ce champ peut être NULL.
Descriptions des champs
WSMethodinvocationRef |
Une WSMethodinvocationRef représente un objet qui peut être exécuté pour obtenir un résultat en provenance d’un Service Web. C’est un CFType et il est donc compté parmis les références et doit être géré via CFRetain et CFRelease.
typedef struct OpaqueWSMethodinvocationRef* WSMethodinvocationRef;
Constantes Services Web
En interne, WebServicesCore utilise les énumérations suivants au moment de la phase d’adaptation entre les types CoreFoundation et XML. Du fait que les CFTypes sont définis au moment de l’exécution, il n’est pas toujours possible de produire une correspondance statique avec un CFTypeRef particulier. Ces énumérations et les API associées permettent une détermination statique de l’adaptation attendue.
Types de Protocole de Service Web |
Ces chaînes constantes spécifient le type d’invocation de méthode de Service Web créé. Elles sont passées à WSMethodinvocationCreate.
extern CFStringRef kWSXMLRPCProtocol; extern CFStringRef kWSSOAP1999Protocol; extern CFStringRef kWSSOAP2001Protocol;
Commentaires
Pour plus d’informations sur ces types de services, référez vous à :
- XML-RPC : <http://www.xml-rpc.com/spec/>
- SOAP 1.1 : <http://www.w3.org/TR/SOAP/>
- SOAP 1.2 : <http://www.w3.org/2002/ws/>
Entrées de Dictionnaire |
Si le résultat de l’invocation n’est pas une erreur, les entrées de dictionnaire seront toujours disponibles dans les réponses de la méthode. Pour les messages SOAP, cependant, il peut être plus correct de demander le dictionnaire résultat du champ spécifique qui vous intéresse.
Ce que cela signifie vraiment est que le dictionnaire retourné par l’invocation peut contenir plusieurs valeurs, dans lesquelles le résultat est duppliqué plusieurs fois. Si vous ne savez pas quoi demander pour vider la réponse, vous pouvez demander cette clé. Si vous savez vraiment ce que vous voulez, vous devriez alors demander explicitement ce champ.
Vous pouvez aussi spécifier le nom du paramètre de réponse lors de l’invocation en utilisant kWSMethodinvocationResultParameterName. Cela ajoute un alias du nom donné au dictionnaire résultat, ainsi kWSMethodinvocationResult retournera toujours le paramètre correct. Notez que cela ne marche pas pour des retours à valeurs multiples.
extern CFStringRef kWSMethodinvocationResult;
Entrées de dictionnaire si le résultat est une erreur :
extern CFStringRef kWSFaultString; /* un CFString */ extern CFStringRef kWSFaultCode; /* un CFNumber */ extern CFStringRef kWSFaultExtra; /* un CFString ou un CFDictionary, ou NULL
Si le résultat est une erreur, et si la valeur de kWSFaultString dans le dictionnaire résultat est kWSNetworkStreamFaultString, alors kWSFaultExtra sera un dictionnaire indiquant l’erreur réseau et kWSFaultCode est ignoré dans ce cas.
Référez-vous à <CoreFoundation/CFStream.h> pour plus de détails sur la signification du domaine et du numéro de l’erreur.
extern CFStringRef kWSNetworkStreamFaultString; extern CFStringRef kWSStreamErrorMessage; /* Un CFString (uniquement pour le déboguage) */ extern CFStringRef kWSStreamErrorDomain; /* Un CFNumberRef */ extern CFStringRef kWSStreamErrorError; /* Un CFNumberRef */
Spécifier un CFHTTPMessageRef en tant que Propriété |
Pour les invocations basées sur HTTP[S], vous pouvez spécifier un CFHTTPMessageRef comme propriété qui sera utilisée à la place de la création d’un nouveau message sortant. Le CFHTTPMessageRef peut contenir des informations d’en-tête, de proxy et d’authentification. Le corps du message sera ignoré et remplacé par l’invocation séquencée sortante.
Après l’exécution de l’invocation, vous pouvez récupérer une copie du réel CFHTTPMessageRef contenant les détails de l’invocation en utilisant kWSHTTPResponseMessage. Le fait de tenter de récupérer la propriété du message de réponse avant que l’invocation ne soit terminée renverra NULL dans le résultat.
Référez-vous à <CFNetwork/CFHTTPMessage.h> pour plus d’informations.
extern CFStringRef kWSHTTPMessage; /* CFHTTPMessageRef */ extern CFStringRef kWSHTTPResponseMessage; /* CFHTTPMessageRef
Afin d’éviter de créer un CFHTTPMessageRef complet,
ces propriétés sont réglables individuellement. Si elles sont réglées, elles
surpasseront tout CFHTTPMessageRef précédemment spécifié.
extern CFStringRef kWSHTTPVersion; /* "http/1.1" */
extern CFStringRef kWSHTTPExtraHeaders; /* un CFDictionary constitué de paires
{ key (CFString), val (CFString) } */
extern CFStringRef kWSHTTPProxy; /* CFURfRefL */
extern CFStringRef kWSHTTPFollowsRedirects; /* kCFBooleanFalse */
Support du Proxy SOCKS |
WSMethodinvocation utilise les mêmes flags que CFSocketStream.h dans la configuration du support des proxies SOCKS. Vous pouvez régler la propriété kCFStreamPropertySOCKSProxy lors de l’invocation et la valeur sera appliquée dans le flux sous-jacent. Voir CFSocketStream.h pour plus d’informations et pour les clés valides.
extern CFStringRef kWSDebugOutgoingHeaders; /* kCFBooleanFalse */ extern CFStringRef kWSDebugOutgoingBody; /* kCFBooleanFalse */ extern CFStringRef kWSDebugIncomingHeaders; /* kCFBooleanFalse */ extern CFStringRef kWSDebugIncomingBody; /* kCFBooleanFalse */
Commentaires
Ces flags de déboguage peupleront le WSinvocationResultRef avec quelques données potentiellement utiles. Le nom de propriété du flag est le même que celui du champ dans le dictionnaire résultat.
Propriétés Extra des Messages SOAP |
Elles s’appliquent à l’espace de nommage du message et au format en tant que tel. Des éléments individuels du message peuvent être modifiés en utilisant les constantes kWSRecord ci-dessous.
extern CFStringRef kWSSOAPMethodNamespaceURI; /* CFStringRef */
extern CFStringRef kWSSOAPBodyEncodingStyle; /* CFStringRef {
kWSSOAPStyleDoc,
kWSSOAPStyleRPC } */
extern CFStringRef kWSSOAPStyleDoc;
extern CFStringRef kWSSOAPStyleRPC;
Pour les messages SOAP, c’est un tableau de CFStringRef qui contient des éléments d’en-tête XML valides envoyés avec le message. Ils ne sont applicables quà l’en-tête d’un message SOAP.
extern CFStringRef kWSSOAPMessageHeaders; /* CFArrayRef */
Lors du séquençage d’un enregistrement (dictionnaire), ces clés présentes dans le dictionnaire peuvent modifier le comportement du séquençage.
extern CFStringRef kWSRecordParameterOrder; /* CFArrayRef de CFStringRef */ extern CFStringRef kWSRecordNamespaceURI; /* CFStringRef */ extern CFStringRef kWSRecordType; /* CFStringRef */
Spécifie que le paramètre résultat portera ce nom. Cela force le déséquenceur à faire un alias à partir du paramètre nommé vers kWSMethodinvocationResult
extern CFStringRef kWSMethodinvocationResultParameterName;
Spécifie un timeout (en tant que CFNumber) qui indique en secondes combien de temps attendre que l’invocation se termine. Si l’exécution de l’invocation dépasse cette durée et que le serveur renvoie sa réponse, une erreur sera retournée avec le code errWSTimeoutError.
extern CFStringRef kWSMethodinvocationTimeoutValue;
WSTypeID |
enum WSTypeID {
eWSUnknownType = 0,
eWSNullType = 1,
eWSBooleanType = 2,
eWSIntegerType = 3,
eWSDoubleType = 4,
eWSStringType = 5,
eWSDateType = 6,
eWSDataType = 7,
eWSArrayType = 8,
eWSDictionaryType = 9
};
typedef enum WSTypeID WSTypeID;
eWSUnknownType- Aucune correspondance connue pour ce type.
- CFNullRef
- CFBooleanRef.
- CFNumberRef pour des entiers de 8, 16 et 32 bits.
- CFNumberRef pour des nombres longs, doubles et rééls.
- CFStringRef.
eWSDateType- CFDataRef.
- CFArrayRef.
eWSDictionaryType- CFDictionaryRef.
Descriptions
Codes Retour des Services Web
Les codes retour des Services Web sont listés ici. Les fonctions de Services Web peuvent en plus retourner d’autres codes retour Mac OS X qui sont décrits dans “Inside Mac OS X”.
| errWSInternalError | -65793L | Erreur interne du framework. |
| errWSTransportError | -65794L | Erreur réseau. |
| errWSParseError | -65795L | La réponse du serveur n’est pas du XML valide. |
| errWSTimeoutError | -65796L | Dépassement de durée dans l’invocation. |

Textes originaux en anglais sur developer.apple.com : WebServices - References
Chargement
Commentaires récents