Partager via


WS_HTTP_MESSAGE_MAPPING structure (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 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 message.

responseMappingOptions

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

requestHeaderMappings

Tableau de pointeurs vers des mappages qui décrivent les en-têtes HTTP mappés vers/depuis les en-têtes dans l’objet message pour une requête HTTP. Les pointeurs du tableau peuvent ne pas être 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/depuis les en-têtes dans l’objet message pour une réponse HTTP. Les pointeurs du tableau peuvent ne pas être NULL.

responseHeaderMappingCount

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

Remarques

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 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 aux 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 à partir de la demande ou de la réponse vers les en-têtes de l’objet 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 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 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 qui ont été 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é vers/à 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 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