Accueil > Développer pour le Web > Services Web : Références

Services Web : Références

Par Apple Computer, Inc. © 2003 (Dernière mise à jour Septembre 2002),

Traduit par Thierry, 04/07/2003.

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 :

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);

Description des Paramètres

url
Le point final du service.
methodName
Le nom de la méthode à appeler.
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);

Description des Paramètres

contract
Le résultat d’un WSMethodinvocationRef précédemment séquencé.
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);

Description des Paramètres

invocation
L’appel à séquencer.
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);

Description des Paramètres

invocation
L’objet appel.
parameters
Un CFDictionaryRef de clés CFString et de valeurs CFTypeRef.
parameterOrder
Un CFArrayRef de noms de paramètres CFString.

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);

Description des Paramètres

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.

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);

Description des Paramètres

invocation
L’invocation.
propertyName
Le nom CFStringRef de la propriété à modifier.

propertyValue
Un CFTypeRef contenant la valeur de la nouvelle propriété.

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) ;

Description des Paramètres

invocation
L’invocation.
propertyName
Le nom de la propriété à récupérer.

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) ;

Description des Paramètres

invocation
L’invocation.
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);

Description des Paramètres

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.

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);

Description des Paramètres

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.

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);

Description des Paramètres

invocation
L’invocation.
runLoop
La boucle d’exécution dans laquelle plannifier l’invocation.
runLoopMode
Le type de boucle d’exécution.

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);

Description des Paramètres

invocation
L’invocation.
runLoop
La boucle d’exécution dans laquelle déplannifier l’invocation.
runLoopMode
Le type de boucle.

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);

Description des Paramètres

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.

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);

Description des Paramètres

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.

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);

Description des Paramètres

invocation
L’invocation.
objType
Le CFTypeID de l’objet.
serializationProc
Le rappel invoqué.
context
Un pointeur vers un WSClientContext. La structure sera copiée.

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);

Description des Paramètres

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.
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);

Description des Paramètres

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.

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);

Description des Paramètres

ref
Un objet CFTypeRef.
Le WSTypeID utilisé dans le séquençage de l’objet. Si aucun WSTypeID ne correspond, eWSUnknownType est retourné.

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);

Description des Paramètres

typeID
Une constante WSTypeID.
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;

Descriptions des champs

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.


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;

Descriptions

eWSUnknownType
Aucune correspondance connue pour ce type.

eWSNullType

CFNullRef

eWSBooleanType

CFBooleanRef.

eWSIntegerType

CFNumberRef pour des entiers de 8, 16 et 32 bits.

eWSDoubleType

CFNumberRef pour des nombres longs, doubles et rééls.

eWSStringType

CFStringRef.
eWSDateType
CFDataRef.

eWSArrayType

CFArrayRef.
eWSDictionaryType
CFDictionaryRef.

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

Thierry Développer pour le Web , , , ,

  1. Pas encore de commentaire
  1. Pas encore de trackbacks
Vous devez être identifié pour poster un commentaire