Propiedad IWinHttpRequest::StatusText
La propiedad StatusText recupera el texto de estado HTTP.
Esta propiedad es de solo lectura.
Sintaxis
HRESULT get_StatusText(
[out, retval] BSTR *Status
);
StatusText = WinHttpRequest.StatusText
Valor de propiedad
BSTR que recibe el texto de estado HTTP.
Códigos de error
El valor devuelto se S_OK si se ejecuta correctamente o un valor de error de lo contrario.
Observaciones
Recupera la parte de texto de la línea de respuesta del servidor, lo que hace que esté disponible el equivalente "fácil de usar" al código de estado HTTP numérico. Los resultados de esta propiedad solo son válidos después de que el método Send se haya completado correctamente.
Nota
Para Windows XP y Windows 2000, consulte la sección Requisitos en tiempo de ejecución de la página de inicio de WinHTTP.
Ejemplos
En el ejemplo siguiente se muestra cómo abrir una conexión HTTP, enviar una solicitud HTTP, mostrar status yStatusText y leer el texto de la respuesta. Este ejemplo debe ejecutarse desde un símbolo del sistema.
#include <windows.h>
#include <stdio.h>
#include <objbase.h>
#include "httprequest.h"
#pragma comment(lib, "ole32.lib")
#pragma comment(lib, "oleaut32.lib")
// IID for IWinHttpRequest.
const IID IID_IWinHttpRequest =
{
0x06f29373,
0x5c5a,
0x4b54,
{0xb0, 0x25, 0x6e, 0xf1, 0xbf, 0x8a, 0xbf, 0x0e}
};
int main()
{
// Variable for return value
HRESULT hr;
// Initialize COM.
hr = CoInitialize( NULL );
IWinHttpRequest * pIWinHttpRequest = NULL;
BSTR bstrResponse = NULL;
VARIANT varFalse;
VARIANT varEmpty;
LONG lStatus = 0;
BSTR bstrStatusText = NULL;
CLSID clsid;
VariantInit(&varFalse);
V_VT(&varFalse) = VT_BOOL;
V_BOOL(&varFalse) = VARIANT_FALSE;
VariantInit(&varEmpty);
V_VT(&varEmpty) = VT_ERROR;
hr = CLSIDFromProgID(L"WinHttp.WinHttpRequest.5.1", &clsid);
if (SUCCEEDED(hr))
{
hr = CoCreateInstance(clsid, NULL,
CLSCTX_INPROC_SERVER,
IID_IWinHttpRequest,
(void **)&pIWinHttpRequest);
}
if (SUCCEEDED(hr))
{ // Open WinHttpRequest.
BSTR bstrMethod = SysAllocString(L"GET");
BSTR bstrUrl = SysAllocString(L"https://microsoft.com");
hr = pIWinHttpRequest->Open(bstrMethod, bstrUrl, varFalse);
SysFreeString(bstrMethod);
SysFreeString(bstrUrl);
}
if (SUCCEEDED(hr))
{ // Send Request.
hr = pIWinHttpRequest->Send(varEmpty);
}
if (SUCCEEDED(hr))
{ // Send Request.
hr = pIWinHttpRequest->get_Status(&lStatus);
hr = pIWinHttpRequest->get_StatusText(&bstrStatusText);
}
if (SUCCEEDED(hr))
{ // Get Response text.
hr = pIWinHttpRequest->GetAllResponseHeaders(&bstrResponse);
}
if (SUCCEEDED(hr))
{ // Print response to console.
wprintf(L"%s\n\n", bstrResponse);
wprintf(L"%u - %s\n\n", lStatus, bstrStatusText);
}
// Release memory.
if (pIWinHttpRequest)
pIWinHttpRequest->Release();
if (bstrStatusText)
SysFreeString(bstrStatusText);
if (bstrResponse)
SysFreeString(bstrResponse);
CoUninitialize();
return 0;
}
En el siguiente ejemplo de scripting se muestra cómo abrir una conexión HTTP, enviar una solicitud HTTP, mostrar status y StatusText y leer los encabezados de respuesta.
// Instantiate a WinHttpRequest object.
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
// Initialize an HTTP request.
WinHttpReq.Open("GET", "https://www.microsoft.com", false);
// Send the HTTP request.
WinHttpReq.Send();
// Display the status.
WScript.Echo( WinHttpReq.Status + " - " + WinHttpReq.StatusText);
// Display the date header.
WScript.Echo( WinHttpReq.GetAllResponseHeaders());
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows XP, Windows 2000 Professional con SP3 [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows Server 2003, Windows 2000 Server con SP3 [solo aplicaciones de escritorio] |
Redistribuible |
WinHTTP 5.0 e Internet Explorer 5.01 o posterior en Windows XP y Windows 2000. |
IDL |
|
Biblioteca |
|
Archivo DLL |
|