Funzione WsRequestReply (webservices.h)
Usato per inviare un messaggio di richiesta e ricevere un messaggio di risposta correlato.
Sintassi
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
);
Parametri
[in] channel
Canale su cui eseguire l'operazione request-reply.
[in] requestMessage
Oggetto messaggio da utilizzare per inviare la richiesta.
L'oggetto messaggio deve trovarsi in WS_MESSAGE_STATE_EMPTY o WS_MESSAGE_STATE_INITIALIZED.
[in] requestMessageDescription
Il campo dell'azione del WS_MESSAGE_DESCRIPTION viene usato come intestazione dell'azione per il messaggio di richiesta. Questo campo può essere NULL se non è necessaria alcuna azione.
Il campo bodyElementDescription del WS_MESSAGE_DESCRIPTION viene utilizzato per serializzare il corpo del messaggio di richiesta. Questo campo può essere NULL se non si desidera alcun elemento body. Per informazioni su come il corpo viene serializzato in base al bodyElementDescription, vedere WsWriteBody .
[in] writeOption
Indica se l'elemento body è obbligatorio e la modalità di allocazione del valore. Per altre informazioni, vedere WS_WRITE_OPTION .
requestBodyValue
Puntatore al valore da serializzare nel corpo dell'oggetto richiesta.
[in] requestBodyValueSize
Dimensione del valore della richiesta serializzata, in byte.
[in] replyMessage
Oggetto messaggio da utilizzare per ricevere la risposta.
L'oggetto messaggio deve trovarsi in WS_MESSAGE_STATE_EMPTY.
[in] replyMessageDescription
Il campo dell'azione del WS_MESSAGE_DESCRIPTION viene utilizzato per verificare l'intestazione dell'azione del messaggio di risposta ricevuto. Questo campo può essere NULL se non è necessaria alcuna azione. Se NULL, l'intestazione dell'azione del messaggio ricevuto viene ignorata, se presente.
Il campo bodyElementDescription del WS_MESSAGE_DESCRIPTION viene utilizzato per deserializzare il corpo del messaggio di risposta. Questo campo può essere NULL se non si desidera alcun elemento body. Per informazioni su come il corpo viene deserializzato in base al bodyElementDescription, vedere WsReadBody .
[in] readOption
Indica se l'elemento corpo della risposta è obbligatorio e come allocare il valore. Per altre informazioni, vedere WS_READ_OPTION e WsReadBody.
[in, optional] heap
Heap utilizzato per allocare valori del corpo della risposta deserializzati. Se l'heap non è necessario per il tipo specificato, questo parametro può essere NULL.
value
Posizione in cui archiviare i valori deserializzati del corpo.
L'interpretazione di questo parametro dipende dalla WS_READ_OPTION.
Se bodyElementDescription del WS_MESSAGE_DESCRIPTION di risposta è NULL, questo parametro non viene toccato. In questo caso, non è necessario specificare il parametro .
[in] valueSize
L'interpretazione di questo parametro dipende dalla WS_READ_OPTION.
[in, optional] asyncContext
Informazioni su come richiamare la funzione in modo asincrono o NULL se si richiama in modo sincrono.
[in, optional] error
Specifica dove archiviare informazioni aggiuntive sull'errore se la funzione ha esito negativo.
Valore restituito
Questa funzione può restituire uno di questi valori.
Codice restituito | Descrizione |
---|---|
|
Il messaggio di risposta contiene un errore. L'errore può essere estratto dal WS_ERROR usando WsGetErrorProperty. |
|
L'operazione asincrona è ancora in sospeso. |
|
L'operazione è stata interrotta. |
|
L'operazione non è consentita a causa dello stato corrente dell'oggetto . |
|
L'endpoint remoto non esiste o non è stato possibile individuarsi. |
|
L'accesso è stato negato dall'endpoint remoto. |
|
La connessione con l'endpoint remoto è stata terminata. |
|
L'endpoint remoto non è riuscito a elaborare la richiesta. |
|
L'endpoint remoto non è attualmente in servizio in questa posizione. |
|
L'endpoint remoto non è in grado di elaborare la richiesta a causa dell'overload. |
|
L'endpoint remoto non è raggiungibile. |
|
L'URL dell'indirizzo dell'endpoint non è valido. |
|
I dati di input non erano nel formato previsto o non hanno il valore previsto. |
|
L'operazione non è stata completata entro il tempo assegnato. |
|
Accesso negato dal server proxy HTTP. |
|
Il server proxy HTTP non è riuscito a elaborare la richiesta. |
|
È stata superata una quota. |
|
La verifica di sicurezza non è riuscita per i dati ricevuti. |
|
Un'operazione di sicurezza non è riuscita nel framework di Servizi Web Windows. |
|
Un token di sicurezza è stato rifiutato dal server perché è scaduto. |
|
Il server proxy HTTP richiede lo schema di autenticazione HTTP "basic". |
|
Il server proxy HTTP richiede lo schema di autenticazione HTTP "digest". |
|
Il server proxy HTTP richiede lo schema di autenticazione HTTP 'negotiate'. |
|
Il server proxy HTTP richiede lo schema di autenticazione HTTP 'NTLM'. |
|
L'endpoint remoto richiede lo schema di autenticazione HTTP 'basic'. |
|
L'endpoint remoto richiede lo schema di autenticazione HTTP "digest". |
|
L'endpoint remoto richiede lo schema di autenticazione HTTP 'negotiate'. |
|
L'endpoint remoto richiede lo schema di autenticazione HTTP 'NTLM'. |
|
Un certificato obbligatorio non rientra nel periodo di validità durante la verifica rispetto all'orologio di sistema corrente o al timestamp nel file firmato. |
|
Il nome CN dei certificati non corrisponde al valore passato. |
|
Una catena di certificati elaborata, ma terminata in un certificato radice che non è attendibile dal provider di attendibilità. |
|
Il certificato non è valido per l'utilizzo richiesto. |
|
La funzione di revoca non è in grado di completare il controllo di revoca perché il server di revoca è offline. |
|
Memoria insufficiente. |
|
Uno o più argomenti non sono validi. |
|
Questa funzione può restituire altri errori non elencati sopra. |
Commenti
I messaggi vengono correlati al WS_ADDRESSING_VERSION. Per altre informazioni sui messaggi di risposta alle richieste, vedere Panoramica del livello di canale .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 7 [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 R2 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | webservices.h |
Libreria | WebServices.lib |
DLL | WebServices.dll |