Bagikan melalui


Fungsi WinHttpReadDataEx (winhttp.h)

Membaca data dari handel yang dibuka oleh fungsi WinHttpOpenRequest .

Sintaks

WINHTTPAPI DWORD WinHttpReadDataEx(
  HINTERNET hRequest,
  LPVOID    lpBuffer,
  DWORD     dwNumberOfBytesToRead,
  LPDWORD   lpdwNumberOfBytesRead,
  ULONGLONG ullFlags,
  DWORD     cbProperty,
  PVOID     pvProperty
);

Parameter

hRequest

Jenis: DI HINTERNET

Handel HINTERNET yang dikembalikan dari panggilan sebelumnya ke WinHttpOpenRequest.

WinHttpReceiveResponse atau WinHttpQueryDataAvailable harus dipanggil untuk handel ini dan harus telah selesai sebelum WinHttpReadDataEx dipanggil. Meskipun memanggil WinHttpReadDataEx segera setelah penyelesaian WinHttpReceiveResponse menghindari pengeluaran salinan buffer, melakukannya mengharuskan aplikasi Anda menggunakan buffer panjang tetap untuk membaca.

lpBuffer

Jenis: _Out_writes_bytes_to_(dwNumberOfBytesToRead, *lpdwNumberOfBytesRead) __out_data_source(NETWORK) LPVOID

Penunjuk ke buffer yang menerima data yang dibaca. Pastikan buffer ini tetap valid hingga WinHttpReadDataEx selesai.

dwNumberOfBytesToRead

Jenis: IN DWORD

Nilai bilangan bulat panjang yang tidak ditandatangani yang berisi jumlah byte yang akan dibaca.

lpdwNumberOfBytesRead

Jenis: OUT LPDWORD

Penunjuk ke variabel bilangan bulat panjang yang tidak ditandatangani yang menerima jumlah byte yang dibaca. WinHttpReadDataEx mengatur nilai ini ke nol sebelum melakukan pemeriksaan kesalahan atau pekerjaan apa pun. Saat menggunakan WinHTTP secara asinkron, selalu atur parameter ini ke NULL dan ambil informasi dalam fungsi panggilan balik; tidak melakukannya dapat menyebabkan kesalahan memori.

ullFlags

Jenis: DI ULONGLONG

Jika Anda lulus WINHTTP_READ_DATA_EX_FLAG_FILL_BUFFER, maka WinHttp tidak akan menyelesaikan panggilan ke WinHttpReadDataEx hingga buffer data yang disediakan telah terisi, atau respons selesai. Meneruskan bendera ini membuat perilaku API ini setara dengan WinHttpReadData.

cbProperty

Jenis: IN DWORD

Dicadangkan. Lulus 0.

pvProperty

Jenis: _In_reads_bytes_opt_(cbProperty) PVOID

Dicadangkan. Lulus NULL.

Nilai kembali

Kode status yang menunjukkan hasil operasi. Di antara kode kesalahan yang dikembalikan adalah sebagai berikut.

Kode Kesalahan Deskripsi
ERROR_WINHTTP_CONNECTION_ERROR
Koneksi dengan server telah direset atau dihentikan, atau protokol SSL yang tidak kompatibel ditemukan. Misalnya, WinHTTP 5.1 tidak mendukung SSL2 kecuali klien secara khusus mengaktifkannya.
ERROR_WINHTTP_INCORRECT_HANDLE_STATE
Operasi yang diminta tidak dapat dilakukan karena handel yang diberikan tidak dalam keadaan yang benar.
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
Jenis handel yang disediakan salah untuk operasi ini.
ERROR_WINHTTP_INTERNAL_ERROR
Terjadi kesalah internal.
ERROR_WINHTTP_OPERATION_CANCELLED
Operasi dibatalkan, biasanya karena handel tempat permintaan beroperasi ditutup sebelum operasi selesai.
ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW
Dikembalikan saat respons masuk melebihi batas ukuran WinHTTP internal.
ERROR_WINHTTP_TIMEOUT
Waktu permintaan habis.
ERROR_NOT_ENOUGH_MEMORY
Memori tidak cukup tersedia untuk menyelesaikan operasi yang diminta. (Kode galat Windows)

Keterangan

Secara default, WinHttpReadDataEx kembali setelah sejumlah data ditulis ke buffer yang Anda berikan (fungsi tidak akan selalu sepenuhnya mengisi buffer yang Anda sediakan).

Persyaratan

   
Klien minimum yang didukung Windows 10 Build 20348
Server minimum yang didukung Windows 10 Build 20348
Target Platform Windows
Header winhttp.h
Pustaka Winhttp.lib
DLL Winhttp.dll

Lihat juga