structure WS_HTTP_MESSAGE_MAPPING (webservices.h)

Spécifie des informations sur la façon dont une requête ou une réponse HTTP doit être représentée dans un objet de message.

Syntaxe

typedef struct _WS_HTTP_MESSAGE_MAPPING {
  ULONG                  requestMappingOptions;
  ULONG                  responseMappingOptions;
  WS_HTTP_HEADER_MAPPING **requestHeaderMappings;
  ULONG                  requestHeaderMappingCount;
  WS_HTTP_HEADER_MAPPING **responseHeaderMappings;
  ULONG                  responseHeaderMappingCount;
} WS_HTTP_MESSAGE_MAPPING;

Membres

requestMappingOptions

Options qui contrôlent la façon dont les informations de la requête HTTP sont mappées à l’objet de message.

responseMappingOptions

Options qui contrôlent la façon dont les informations de la réponse HTTP sont mappées à l’objet de message.

requestHeaderMappings

Tableau de pointeurs vers des mappages qui décrivent les en-têtes HTTP mappés vers/à partir des en-têtes dans l’objet de message pour une requête HTTP. Les pointeurs du tableau peuvent ne pas avoir la valeur NULL.

requestHeaderMappingCount

Nombre d’éléments dans le tableau requestHeaderMappings.

responseHeaderMappings

Tableau de pointeurs vers des mappages qui décrivent les en-têtes HTTP mappés vers/à partir des en-têtes dans l’objet de message pour une réponse HTTP. Les pointeurs du tableau peuvent ne pas avoir la valeur NULL.

responseHeaderMappingCount

Nombre d’éléments dans le tableau responseHeaderMappings.

Notes

Un message peut contenir des informations supplémentaires spécifiques au transport qui ne font pas partie de l’enveloppe du message. Ces informations spécifiques au transport peuvent être exposées par programmation en tant qu’en-têtes de l’objet de message.
Ces en-têtes sont appelés en-têtes mappés.

Chaque en-tête mappé est stocké en tant qu’élément d’en-tête standard dans les en-têtes du message (voir WS_MESSAGE_PROPERTY_HEADER_BUFFER). L’espace de noms XML vide («  ») est utilisé pour les en-têtes mappés.

Cette structure spécifie comment le mappage se produit entre une requête ou une réponse HTTP et les en-têtes mappés de l’objet message. La structure peut être spécifiée à l’aide de la propriété WS_CHANNEL_PROPERTY_HTTP_MESSAGE_MAPPING .

Le diagramme suivant montre comment les en-têtes HTTP sont mappés dans les en-têtes d’un message.

Diagramme montrant un objet Message avec l’élément MyHeader mis en surbrillance et une flèche pointant vers la ligne MyHeader dans une requête HTTP.

Lorsqu’un message est reçu, le canal HTTP copie automatiquement les en-têtes HTTP spécifiés de la requête ou de la réponse aux en-têtes de l’objet de message. L’application peut ensuite utiliser WsGetMappedHeader pour obtenir les valeurs des en-têtes mappés.

Avant l’envoi d’un message, une application peut ajouter des en-têtes mappés à l’objet de message à l’aide de WsAddMappedHeader. Lorsque le message est envoyé, le canal HTTP supprime automatiquement les en-têtes spécifiés des en-têtes de l’objet de message (de sorte qu’ils n’apparaissent pas dans l’enveloppe) et les ajoute en tant qu’en-têtes de requête ou de réponse HTTP.

Le canal HTTP effectue uniquement ce mappage pour les en-têtes HTTP spécifiés dans les champs requestHeaderMappings ou responseHeaderMappings. Le WS_HTTP_HEADER_MAPPING est utilisé pour spécifier chaque en-tête et inclut des instructions sur la façon dont l’en-tête de message est transformé en/à partir d’un en-tête HTTP.

D’autres informations d’une requête ou d’une réponse HTTP qui ne correspondent pas aux en-têtes HTTP peuvent être mappées dans l’en-tête de l’objet de message en définissant requestMappingOptions ou responseMappingOptions. Ces valeurs mappées peuvent ensuite être extraites à l’aide de WsGetMappedHeader.
Consultez WS_HTTP_REQUEST_MAPPING_OPTIONS ou WS_HTTP_RESPONSE_MAPPING_OPTIONS pour plus d’informations sur les informations qui peuvent être mappées dans les en-têtes de message.

Configuration requise

   
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
En-tête webservices.h