Função WsRequestReply (webservices.h)
Usado para enviar uma mensagem de solicitação e receber uma mensagem de resposta correlacionada.
Sintaxe
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
);
Parâmetros
[in] channel
O canal no qual realizar a operação de solicitação-resposta.
[in] requestMessage
O objeto de mensagem a ser usado para enviar a solicitação.
O objeto de mensagem deve estar em WS_MESSAGE_STATE_EMPTY ou WS_MESSAGE_STATE_INITIALIZED.
[in] requestMessageDescription
O campo de ação do WS_MESSAGE_DESCRIPTION é usado como o cabeçalho de ação para a mensagem de solicitação. Esse campo poderá ser NULL se nenhuma ação for necessária.
O campo bodyElementDescription do WS_MESSAGE_DESCRIPTION é usado para serializar o corpo da mensagem de solicitação. Esse campo poderá ser NULL se nenhum elemento de corpo for desejado. Consulte WsWriteBody para obter informações sobre como o corpo é serializado de acordo com bodyElementDescription.
[in] writeOption
Se o elemento body é necessário e como o valor é alocado. Consulte WS_WRITE_OPTION para obter mais informações.
requestBodyValue
Um ponteiro para o valor a ser serializado no corpo do objeto de solicitação.
[in] requestBodyValueSize
O tamanho do valor da solicitação que está sendo serializado, em bytes.
[in] replyMessage
O objeto de mensagem a ser usado para receber a resposta.
O objeto de mensagem deve estar em WS_MESSAGE_STATE_EMPTY.
[in] replyMessageDescription
O campo de ação do WS_MESSAGE_DESCRIPTION é usado para verificar o cabeçalho de ação da mensagem de resposta recebida. Esse campo poderá ser NULL se nenhuma ação for necessária. Se FOR NULL, o cabeçalho de ação da mensagem recebida será ignorado se presente.
O campo bodyElementDescription do WS_MESSAGE_DESCRIPTION é usado para desserializar o corpo da mensagem de resposta. Esse campo poderá ser NULL se nenhum elemento de corpo for desejado. Consulte WsReadBody para obter informações sobre como o corpo é desserializado de acordo com o bodyElementDescription.
[in] readOption
Se o elemento do corpo da resposta é necessário e como alocar o valor. Para obter mais informações, consulte WS_READ_OPTION e WsReadBody.
[in, optional] heap
O heap usado para alocar valores desserializados do corpo da resposta. Se o heap não for necessário para o tipo fornecido, esse parâmetro poderá ser NULL.
value
Onde armazenar os valores desserializados do corpo.
A interpretação desse parâmetro depende do WS_READ_OPTION.
Se o bodyElementDescription do WS_MESSAGE_DESCRIPTION de resposta for NULL, esse parâmetro não será tocado. Nesse caso, o parâmetro não precisa ser especificado.
[in] valueSize
A interpretação desse parâmetro depende do WS_READ_OPTION.
[in, optional] asyncContext
Informações sobre como invocar a função de forma assíncrona ou NULL se estiver invocando de forma síncrona.
[in, optional] error
Especifica onde informações adicionais de erro devem ser armazenadas se a função falhar.
Retornar valor
Essa função pode retornar um desses valores.
Código de retorno | Descrição |
---|---|
|
A mensagem de resposta continha uma falha. A falha pode ser extraída do WS_ERROR usando WsGetErrorProperty. |
|
A operação assíncrona ainda está pendente. |
|
A operação foi anulada. |
|
A operação não é permitida devido ao estado atual do objeto. |
|
O ponto de extremidade remoto não existe ou não pôde ser localizado. |
|
O acesso foi negado pelo ponto de extremidade remoto. |
|
A conexão com o ponto de extremidade remoto foi encerrada. |
|
O ponto de extremidade remoto não pôde processar a solicitação. |
|
O ponto de extremidade remoto não está atualmente em serviço neste local. |
|
O ponto de extremidade remoto não pode processar a solicitação devido à sobrecarga. |
|
O ponto de extremidade remoto não estava acessível. |
|
A URL do endereço do ponto de extremidade é inválida. |
|
Os dados de entrada não estavam no formato esperado ou não tinham o valor esperado. |
|
A operação não foi concluída dentro do tempo alocado. |
|
O acesso foi negado pelo servidor proxy HTTP. |
|
O servidor proxy HTTP não pôde processar a solicitação. |
|
Uma cota foi excedida. |
|
A verificação de segurança não foi bem-sucedida para os dados recebidos. |
|
Falha em uma operação de segurança na estrutura dos Serviços Web do Windows. |
|
Um token de segurança foi rejeitado pelo servidor porque expirou. |
|
O servidor proxy HTTP requer o esquema de autenticação HTTP 'basic'. |
|
O servidor proxy HTTP requer o esquema de autenticação HTTP 'digest'. |
|
O servidor proxy HTTP requer o esquema de autenticação HTTP 'negotiate'. |
|
O servidor proxy HTTP requer o esquema de autenticação HTTP 'NTLM'. |
|
O ponto de extremidade remoto requer o esquema de autenticação HTTP 'básico'. |
|
O ponto de extremidade remoto requer o esquema de autenticação HTTP 'digest'. |
|
O ponto de extremidade remoto requer o esquema de autenticação HTTP 'negotiate'. |
|
O ponto de extremidade remoto requer o esquema de autenticação HTTP 'NTLM'. |
|
Um certificado necessário não está dentro de seu período de validade ao verificar o relógio do sistema atual ou o carimbo de data/hora no arquivo assinado. |
|
O nome CN dos certificados não corresponde ao valor passado. |
|
Uma cadeia de certificados processada, mas encerrada em um certificado raiz que não é confiável pelo provedor de confiança. |
|
O certificado não é válido para o uso solicitado. |
|
A função de revogação não pôde verificar a revogação porque o servidor de revogação estava offline. |
|
Ficou sem memória. |
|
Um ou mais argumentos são inválidos. |
|
Essa função pode retornar outros erros não listados acima. |
Comentários
As mensagens são correlacionadas conforme apropriado para o WS_ADDRESSING_VERSION. Consulte Visão geral da camada de canal para obter mais informações sobre como correlacionar mensagens de resposta de solicitação.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 7 [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 R2 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | webservices.h |
Biblioteca | WebServices.lib |
DLL | WebServices.dll |