struttura WS_HTTP_MESSAGE_MAPPING (webservices.h)

Specifica informazioni sulla modalità di rappresentazione di una richiesta o una risposta HTTP in un oggetto messaggio.

Sintassi

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;

Members

requestMappingOptions

Opzioni che controllano il mapping delle informazioni nella richiesta HTTP all'oggetto messaggio.

responseMappingOptions

Opzioni che controllano il mapping delle informazioni nella risposta HTTP all'oggetto messaggio.

requestHeaderMappings

Matrice di puntatori ai mapping che descrivono le intestazioni HTTP mappate a/da intestazioni nell'oggetto messaggio per una richiesta HTTP. I puntatori nella matrice potrebbero non essere NULL.

requestHeaderMappingCount

Numero di elementi nella matrice requestHeaderMappings.

responseHeaderMappings

Matrice di puntatori ai mapping che descrivono quali intestazioni HTTP vengono mappate a/da intestazioni nell'oggetto messaggio per una risposta HTTP. I puntatori nella matrice potrebbero non essere NULL.

responseHeaderMappingCount

Numero di elementi nella matrice responseHeaderMappings.

Commenti

Un messaggio può contenere informazioni aggiuntive specifiche del trasporto che non fanno parte della busta del messaggio. Queste informazioni specifiche del trasporto possono essere esposte a livello di codice come intestazioni dell'oggetto messaggio.
Queste intestazioni vengono definite intestazioni mappate.

Ogni intestazione mappata viene archiviata come elemento di intestazione regolare nelle intestazioni del messaggio (vedere WS_MESSAGE_PROPERTY_HEADER_BUFFER). Lo spazio dei nomi XML vuoto ("") viene usato per le intestazioni mappate.

Questa struttura specifica il modo in cui si verifica il mapping tra una richiesta o una risposta HTTP e le intestazioni mappate dell'oggetto messaggio. È possibile specificare la struttura utilizzando la proprietà WS_CHANNEL_PROPERTY_HTTP_MESSAGE_MAPPING .

Il diagramma seguente mostra il mapping delle intestazioni HTTP nelle intestazioni di un messaggio.

Diagramma che mostra un oggetto Message con l'elemento MyHeader evidenziato e una freccia che punta alla riga MyHeader in una richiesta HTTP.

Quando viene ricevuto un messaggio, il canale HTTP copia automaticamente le intestazioni HTTP specificate dalla richiesta o dalla risposta alle intestazioni dell'oggetto messaggio. L'applicazione può quindi usare WsGetMappedHeader per ottenere i valori delle intestazioni mappate.

Prima dell'invio di un messaggio, un'applicazione può aggiungere intestazioni mappate all'oggetto messaggio usando WsAddMappedHeader. Quando il messaggio viene inviato, il canale HTTP rimuove automaticamente le intestazioni specificate dalle intestazioni dell'oggetto messaggio (in modo che non vengano visualizzate all'interno della busta) e le aggiunge come intestazioni di richiesta o risposta HTTP.

Il canale HTTP eseguirà questo mapping solo per le intestazioni HTTP specificate nei campi requestHeaderMappings o responseHeaderMappings. Il WS_HTTP_HEADER_MAPPING viene usato per specificare ogni intestazione e include istruzioni su come l'intestazione del messaggio viene trasformata in/da un'intestazione HTTP.

È possibile eseguire il mapping di altre informazioni in una richiesta o una risposta HTTP che non corrispondono alle intestazioni HTTP nell'intestazione dell'oggetto messaggio impostando requestMappingOptions o responseMappingOptions. Questi valori mappati possono quindi essere estratti usando WsGetMappedHeader.
Vedere WS_HTTP_REQUEST_MAPPING_OPTIONS o WS_HTTP_RESPONSE_MAPPING_OPTIONS per informazioni sulle informazioni di cui è possibile eseguire il mapping nelle intestazioni dei messaggi.

Requisiti

   
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Intestazione webservices.h