Fungsi HttpOpenRequestA (wininet.h)

Membuat handel permintaan HTTP.

Sintaks

HINTERNET HttpOpenRequestA(
  [in] HINTERNET hConnect,
  [in] LPCSTR    lpszVerb,
  [in] LPCSTR    lpszObjectName,
  [in] LPCSTR    lpszVersion,
  [in] LPCSTR    lpszReferrer,
  [in] LPCSTR    *lplpszAcceptTypes,
  [in] DWORD     dwFlags,
  [in] DWORD_PTR dwContext
);

Parameter

[in] hConnect

Handel ke sesi HTTP yang dikembalikan oleh InternetConnect.

[in] lpszVerb

Penunjuk ke string yang dihentikan null yang berisi kata kerja HTTP untuk digunakan dalam permintaan. Jika parameter ini NULL, fungsi menggunakan GET sebagai kata kerja HTTP.

[in] lpszObjectName

Penunjuk ke string yang dihentikan null yang berisi nama objek target kata kerja HTTP yang ditentukan. Ini umumnya adalah nama file, modul yang dapat dieksekusi, atau penentu pencarian.

[in] lpszVersion

Penunjuk ke string yang dihentikan null yang berisi versi HTTP yang akan digunakan dalam permintaan. Pengaturan di Internet Explorer akan menggantikan nilai yang ditentukan dalam parameter ini.

Jika parameter ini NULL, fungsi menggunakan versi HTTP 1.1 atau 1.0, tergantung pada nilai pengaturan Internet Explorer.

Nilai Makna
HTTP/1.0
HTTP versi 1.0
HTTP/1.1
HTTP versi 1.1

[in] lpszReferrer

Penunjuk ke string yang dihentikan null yang menentukan URL dokumen tempat URL dalam permintaan (lpszObjectName) diperoleh. Jika parameter ini NULL, tidak ada referen yang ditentukan.

[in] lplpszAcceptTypes

Penunjuk ke array string yang dihentikan null yang menunjukkan jenis media yang diterima oleh klien. Berikut adalah contohnya.

PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};

Gagal mengakhiri array dengan benar dengan penunjuk NULL akan menyebabkan crash.

Jika parameter ini NULL, tidak ada jenis yang diterima oleh klien. Server umumnya menginterpretasikan kurangnya jenis terima untuk menunjukkan bahwa klien hanya menerima dokumen jenis "text/*" (yaitu, hanya dokumen teks—tidak ada gambar atau file biner lainnya).

[in] dwFlags

Opsi internet. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
INTERNET_FLAG_CACHE_IF_NET_FAIL
Mengembalikan sumber daya dari cache jika permintaan jaringan untuk sumber daya gagal karena ERROR_INTERNET_CONNECTION_RESET (koneksi dengan server telah diatur ulang) atau ERROR_INTERNET_CANNOT_CONNECT (upaya untuk terhubung ke server gagal).
INTERNET_FLAG_HYPERLINK
Memaksa pemuatan ulang jika tidak ada waktu Kedaluwarsa dan tidak ada waktu LastModified yang dikembalikan dari server saat menentukan apakah akan memuat ulang item dari jaringan.
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
Menonaktifkan pemeriksaan sertifikat berbasis SSL/PCT yang dikembalikan dari server terhadap nama host yang diberikan dalam permintaan. Fungsi WinINet menggunakan pemeriksaan sederhana terhadap sertifikat dengan membandingkan untuk mencocokkan nama host dan aturan wildcarding sederhana.
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
Menonaktifkan pemeriksaan sertifikat berbasis SSL/PCT untuk tanggal validitas yang tepat.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
Menonaktifkan deteksi jenis pengalihan khusus ini. Ketika bendera ini digunakan, fungsi WinINet secara transparan memungkinkan pengalihan dari HTTPS ke URL HTTP.
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
Menonaktifkan deteksi jenis pengalihan khusus ini. Ketika bendera ini digunakan, fungsi WinINet secara transparan memungkinkan pengalihan dari URL HTTP ke HTTPS.
INTERNET_FLAG_KEEP_CONNECTION
Menggunakan semantik tetap hidup, jika tersedia, untuk koneksi. Bendera ini diperlukan untuk Microsoft Network (MSN), NT LAN Manager (NTLM), dan jenis autentikasi lainnya.
INTERNET_FLAG_NEED_FILE
Menyebabkan file sementara dibuat jika file tidak dapat di-cache.
INTERNET_FLAG_NO_AUTH
Tidak mencoba autentikasi secara otomatis.
INTERNET_FLAG_NO_AUTO_REDIRECT
Tidak secara otomatis menangani pengalihan di HttpSendRequest.
INTERNET_FLAG_NO_CACHE_WRITE
Tidak menambahkan entitas yang dikembalikan ke cache.
INTERNET_FLAG_NO_COOKIES
Tidak secara otomatis menambahkan header cookie ke permintaan, dan tidak secara otomatis menambahkan cookie yang dikembalikan ke database cookie.
INTERNET_FLAG_NO_UI
Menonaktifkan kotak dialog cookie.
INTERNET_FLAG_PRAGMA_NOCACHE
Memaksa permintaan diselesaikan oleh server asal, bahkan jika salinan yang di-cache ada di proksi.
INTERNET_FLAG_RELOAD
Memaksa pengunduhan file, objek, atau daftar direktori yang diminta dari server asal, bukan dari cache.
INTERNET_FLAG_RESYNCHRONIZE
Memuat ulang sumber daya HTTP jika sumber daya telah dimodifikasi sejak terakhir kali diunduh. Semua sumber daya FTP dimuat ulang.

Windows XP dan Windows Server 2003 R2 dan yang lebih lama: Sumber daya gopher juga dimuat ulang.

INTERNET_FLAG_SECURE
Menggunakan semantik transaksi yang aman. Ini diterjemahkan menggunakan Secure Sockets Layer/Private Communications Technology (SSL/PCT) dan hanya bermakna dalam permintaan HTTP.

[in] dwContext

Penunjuk ke variabel yang berisi nilai yang ditentukan aplikasi yang mengaitkan operasi ini dengan data aplikasi apa pun.

Mengembalikan nilai

Mengembalikan handel permintaan HTTP jika berhasil, atau NULL sebaliknya. Untuk mengambil informasi kesalahan yang diperluas, panggil GetLastError.

Keterangan

Fungsi HttpOpenRequest membuat handel permintaan HTTP baru dan menyimpan parameter yang ditentukan dalam handel tersebut. Handel permintaan HTTP menahan permintaan untuk dikirim ke server HTTP dan berisi semua header RFC822/MIME/HTTP untuk dikirim sebagai bagian dari permintaan.

Jika kata kerja selain "GET" atau "POST" ditentukan, HttpOpenRequest secara otomatis mengatur INTERNET_FLAG_NO_CACHE_WRITE dan INTERNET_FLAG_RELOAD untuk permintaan tersebut.

Dengan Microsoft Internet Explorer 5 dan yang lebih baru, jika lpszVerb diatur ke "HEAD", header Content-Length diabaikan pada respons dari server HTTP/1.1.

Pada Windows 7, Windows Server 2008 R2, dan yang lebih baru, parameter lpszVersion ditimpa oleh pengaturan Internet Explorer. EnableHttp1_1 adalah nilai registri di bawah HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE yang dikendalikan oleh Opsi Internet yang diatur di Internet Explorer untuk sistem. Nilai EnableHttp1_1 default ke 1. Fungsi HttpOpenRequest meningkatkan versi HTTP apa pun yang kurang dari 1.1 ke HTTP versi 1.1 jika EnableHttp1_1 diatur ke 1.

Setelah aplikasi panggilan selesai menggunakan handel HINTERNET yang dikembalikan oleh HttpOpenRequest, aplikasi harus ditutup menggunakan fungsi InternetCloseHandle .

Catatan Ketika permintaan dikirim dalam mode asinkron (parameter dwFlagsInternetOpen menentukan INTERNET_FLAG_ASYNC), dan parameter dwContext adalah nol (INTERNET_NO_CALLBACK), fungsi panggilan balik yang diatur dengan InternetSetStatusCallback pada handel permintaan tidak akan dipanggil, namun, panggilan masih akan dilakukan dalam mode asinkron.

Seperti semua aspek lain dari Api WinINet, fungsi ini tidak dapat dipanggil dengan aman dari dalam DllMain atau konstruktor dan destruktor objek global.

Catatan WinINet tidak mendukung implementasi server. Selain itu, itu tidak boleh digunakan dari layanan. Untuk implementasi atau layanan server, gunakan Microsoft Windows HTTP Services (WinHTTP).
 

Catatan

Header wininet.h mendefinisikan HttpOpenRequest sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header wininet.h
Pustaka Wininet.lib
DLL Wininet.dll

Lihat juga

Sesi HTTP

Fungsi WinINet