WsRequestReply, fonction (webservices.h)
Permet d’envoyer un message de demande et de recevoir un message de réponse corrélé.
Syntaxe
HRESULT WsRequestReply(
[in] WS_CHANNEL *channel,
[in] WS_MESSAGE *requestMessage,
[in] const WS_MESSAGE_DESCRIPTION *requestMessageDescription,
[in] WS_WRITE_OPTION writeOption,
const void *requestBodyValue,
[in] ULONG requestBodyValueSize,
[in] WS_MESSAGE *replyMessage,
[in] const WS_MESSAGE_DESCRIPTION *replyMessageDescription,
[in] WS_READ_OPTION readOption,
[in, optional] WS_HEAP *heap,
void *value,
[in] ULONG valueSize,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
Paramètres
[in] channel
Canal sur lequel effectuer l’opération demande-réponse.
[in] requestMessage
Objet de message à utiliser pour envoyer la demande.
L’objet message doit être dans WS_MESSAGE_STATE_EMPTY ou WS_MESSAGE_STATE_INITIALIZED.
[in] requestMessageDescription
Le champ d’action du WS_MESSAGE_DESCRIPTION est utilisé comme en-tête d’action pour le message de demande. Ce champ peut être NULL si aucune action n’est requise.
Le champ bodyElementDescription du WS_MESSAGE_DESCRIPTION est utilisé pour sérialiser le corps du message de demande. Ce champ peut être NULL si aucun élément body n’est souhaité. Consultez WsWriteBody pour plus d’informations sur la façon dont le corps est sérialisé selon bodyElementDescription.
[in] writeOption
Indique si l’élément body est requis et comment la valeur est allouée. Pour plus d’informations, consultez WS_WRITE_OPTION .
requestBodyValue
Pointeur vers la valeur à sérialiser dans le corps de l’objet de requête.
[in] requestBodyValueSize
Taille de la valeur de la requête en cours de sérialisation, en octets.
[in] replyMessage
Objet message à utiliser pour recevoir la réponse.
L’objet message doit être dans WS_MESSAGE_STATE_EMPTY.
[in] replyMessageDescription
Le champ d’action du WS_MESSAGE_DESCRIPTION est utilisé pour vérifier l’en-tête d’action du message de réponse reçu. Ce champ peut être NULL si aucune action n’est requise. Si la valeur est NULL, l’en-tête d’action du message reçu est ignoré s’il est présent.
Le champ bodyElementDescription du WS_MESSAGE_DESCRIPTION est utilisé pour désérialiser le corps du message de réponse. Ce champ peut être NULL si aucun élément body n’est souhaité. Consultez WsReadBody pour plus d’informations sur la façon dont le corps est désérialisé selon bodyElementDescription.
[in] readOption
Indique si l’élément de corps de réponse est requis et comment allouer la valeur. Pour plus d’informations, consultez WS_READ_OPTION et WsReadBody.
[in, optional] heap
Tas utilisé pour allouer des valeurs de corps de réponse désérialisées. Si le tas n’est pas nécessaire pour le type donné, ce paramètre peut être NULL.
value
Où stocker les valeurs désérialisées du corps.
L’interprétation de ce paramètre dépend du WS_READ_OPTION.
Si bodyElementDescription du WS_MESSAGE_DESCRIPTION de réponse a la valeur NULL, ce paramètre n’est pas touché. Dans ce cas, le paramètre n’a pas besoin d’être spécifié.
[in] valueSize
L’interprétation de ce paramètre dépend du WS_READ_OPTION.
[in, optional] asyncContext
Informations sur la façon d’appeler la fonction de manière asynchrone, ou NULL en cas d’appel synchrone.
[in, optional] error
Spécifie l’emplacement où des informations d’erreur supplémentaires doivent être stockées en cas d’échec de la fonction.
Valeur retournée
Cette fonction peut retourner l’une de ces valeurs.
Code de retour | Description |
---|---|
|
Le message de réponse contenait une erreur. L’erreur peut être extraite du WS_ERROR à l’aide de WsGetErrorProperty. |
|
L’opération asynchrone est toujours en attente. |
|
L'opération a été abandonnée. |
|
L’opération n’est pas autorisée en raison de l’état actuel de l’objet. |
|
Le point de terminaison distant n’existe pas ou n’a pas pu être localisé. |
|
L’accès a été refusé par le point de terminaison distant. |
|
La connexion avec le point de terminaison distant a été interrompue. |
|
Le point de terminaison distant n’a pas pu traiter la demande. |
|
Le point de terminaison distant n’est actuellement pas en service à cet emplacement. |
|
Le point de terminaison distant ne peut pas traiter la demande en raison d’une surcharge. |
|
Le point de terminaison distant n’était pas accessible. |
|
L’URL de l’adresse du point de terminaison n’est pas valide. |
|
Les données d’entrée n’étaient pas au format attendu ou n’avaient pas la valeur attendue. |
|
L’opération ne s’est pas terminée dans le délai imparti. |
|
L’accès a été refusé par le serveur proxy HTTP. |
|
Le serveur proxy HTTP n’a pas pu traiter la requête. |
|
Un quota a été dépassé. |
|
La vérification de sécurité n’a pas réussi pour les données reçues. |
|
Une opération de sécurité a échoué dans l’infrastructure des services Web Windows. |
|
Un jeton de sécurité a été rejeté par le serveur, car il a expiré. |
|
Le serveur proxy HTTP nécessite le schéma d’authentification HTTP « de base ». |
|
Le serveur proxy HTTP nécessite le schéma d’authentification HTTP « digest ». |
|
Le serveur proxy HTTP nécessite le schéma d’authentification HTTP « negotiate ». |
|
Le serveur proxy HTTP nécessite le schéma d’authentification HTTP « NTLM ». |
|
Le point de terminaison distant nécessite le schéma d’authentification HTTP « de base ». |
|
Le point de terminaison distant nécessite le schéma d’authentification HTTP « digest ». |
|
Le point de terminaison distant nécessite le schéma d’authentification HTTP « negotiate ». |
|
Le point de terminaison distant nécessite le schéma d’authentification HTTP « NTLM ». |
|
Un certificat requis n’est pas dans sa période de validité lors de la vérification par rapport à l’horloge système actuelle ou à l’horodatage dans le fichier signé. |
|
Le nom CN des certificats ne correspond pas à la valeur passée. |
|
Chaîne de certificats traitée, mais terminée dans un certificat racine qui n’est pas approuvé par le fournisseur d’approbation. |
|
Le certificat n'est pas valide pour l'utilisation demandée. |
|
La fonction de révocation n’a pas pu vérifier la révocation car le serveur de révocation était déconnecté. |
|
Nous avons manqué de mémoire. |
|
Un ou plusieurs arguments ne sont pas valides. |
|
Cette fonction peut renvoyer d’autres erreurs non répertoriées ci-dessus. |
Remarques
Les messages sont corrélés en fonction du WS_ADDRESSING_VERSION. Pour plus d’informations sur la corrélation des messages de réponse aux demandes, consultez Vue d’ensemble de la couche de canal.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 7 [applications de bureau | Applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 R2 [applications de bureau | Applications UWP] |
Plateforme cible | Windows |
En-tête | webservices.h |
Bibliothèque | WebServices.lib |
DLL | WebServices.dll |