Condividi tramite


Funzione HttpSendRequestA (wininet.h)

Invia la richiesta specificata al server HTTP, consentendo ai chiamanti di inviare dati aggiuntivi oltre a quanto normalmente passato a HttpSendRequestEx.

Sintassi

BOOL HttpSendRequestA(
  [in] HINTERNET hRequest,
  [in] LPCSTR    lpszHeaders,
  [in] DWORD     dwHeadersLength,
  [in] LPVOID    lpOptional,
  [in] DWORD     dwOptionalLength
);

Parametri

[in] hRequest

Handle restituito da una chiamata alla funzione HttpOpenRequest .

[in] lpszHeaders

Puntatore a una stringa con terminazione Null che contiene le intestazioni aggiuntive da aggiungere alla richiesta. Questo parametro può essere NULL se non sono presenti intestazioni aggiuntive da aggiungere.

[in] dwHeadersLength

Dimensioni delle intestazioni aggiuntive, in TCHAR. Se questo parametro è -1L e lpszHeaders non è NULL, la funzione presuppone che lpszHeaders sia con terminazione zero (ASCIIZ) e la lunghezza venga calcolata. Per informazioni specifiche, vedere la sezione Osservazioni.

[in] lpOptional

Puntatore a un buffer contenente tutti i dati facoltativi da inviare immediatamente dopo le intestazioni della richiesta. Questo parametro viene in genere usato per le operazioni POST e PUT. I dati facoltativi possono essere la risorsa o le informazioni inviate al server. Questo parametro può essere NULL se non sono presenti dati facoltativi da inviare.

[in] dwOptionalLength

Dimensioni dei dati facoltativi, in byte. Questo parametro può essere zero se non sono presenti dati facoltativi da inviare.

Valore restituito

Restituisce TRUE se l'operazione riesce o FALSE in caso contrario. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

HttpSendRequest invia la richiesta specificata al server HTTP e consente al client di specificare intestazioni aggiuntive da inviare insieme alla richiesta.

La funzione consente anche al client di specificare i dati facoltativi da inviare al server HTTP immediatamente dopo le intestazioni della richiesta. Questa funzionalità viene in genere usata per operazioni di "scrittura", ad esempio PUT e POST.

Dopo l'invio della richiesta, vengono letti il codice di stato e le intestazioni di risposta dal server HTTP. Queste intestazioni vengono mantenute internamente e sono disponibili per le applicazioni client tramite la funzione HttpQueryInfo .

Un'applicazione può usare lo stesso handle di richiesta HTTP in più chiamate a HttpSendRequest, ma l'applicazione deve leggere tutti i dati restituiti dalla chiamata precedente prima di chiamare nuovamente la funzione.

In modalità offline HttpSendRequest restituisce ERROR_FILE_NOT_FOUND se la risorsa non viene trovata nella cache Internet.

Sono disponibili due versioni di HttpSendRequest: HttpSendRequestA (usate con le build ANSI) e HttpSendRequestW (usate con compilazioni Unicode). Se dwHeadersLength è -1L e lpszHeaders non è NULL, si verificherà quanto segue: se viene chiamato HttpSendRequestA , la funzione presuppone che lpszHeaders sia con terminazione zero (ASCIIZ) e la lunghezza venga calcolata. Se viene chiamato HttpSendRequestW , la funzione ha esito negativo con ERROR_INVALID_PARAMETER.

Nota La funzione HttpSendRequestA rappresenta le intestazioni come caratteri ISO-8859-1 e non i caratteri ANSI. La funzione HttpSendRequestW rappresenta le intestazioni come caratteri ISO-8859-1 convertiti in caratteri UTF-16LE. Di conseguenza, non è mai sicuro usare la funzione HttpSendRequestW quando le intestazioni da aggiungere possono contenere caratteri non ASCII. In alternativa, un'applicazione può usare le funzioni MultiByteToWideChar e WideCharToMultiByte con un parametro Codepage impostato su 28591 per eseguire il mapping tra caratteri ANSI e caratteri UTF-16LE.
 
Come tutti gli altri aspetti dell'API WinINet, questa funzione non può essere chiamata in modo sicuro da DllMain o dai costruttori e distruttori di oggetti globali.
Nota WinINet non supporta le implementazioni del server. Inoltre, non deve essere usato da un servizio. Per le implementazioni del server o i servizi, usare i servizi HTTP di Microsoft Windows (WinHTTP).
 

Nota

L'intestazione wininet.h definisce HttpSendRequest come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wininet.h
Libreria Wininet.lib
DLL Wininet.dll

Vedi anche

Sessioni HTTP

Funzioni WinINet