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 un nullstringa con terminazione contenente 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 TCHARs. 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 Note.

[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 in caso di esito positivo oppure FALSE in caso contrario. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

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 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 di nuovo 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 build ANSI) e HttpSendRequestW (usato con le 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 il HttpSendRequestW, la funzione ha esito negativo con ERROR_INVALID_PARAMETER.

Nota La funzione HttpSendRequestA rappresenta le intestazioni come caratteri ISO-8859-1 non 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. Un'applicazione può invece usare le funzioni MultiByteToWideChar e WideCharToMultiBy te 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 dall'interno di 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 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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione wininet.h
libreria Wininet.lib
dll Wininet.dll

Vedere anche

sessioni HTTP

funzioni WinINet