Bagikan melalui


Fungsi WinHttpGetProxyForUrlEx (winhttp.h)

Fungsi WinHttpGetProxyForUrlEx mengambil data proksi untuk URL yang ditentukan.

Sintaks

WINHTTPAPI DWORD WinHttpGetProxyForUrlEx(
  [in] HINTERNET                 hResolver,
  [in] PCWSTR                    pcwszUrl,
  [in] WINHTTP_AUTOPROXY_OPTIONS *pAutoProxyOptions,
  [in] DWORD_PTR                 pContext
);

Parameter

[in] hResolver

Handel resolver WinHTTP yang dikembalikan oleh fungsi WinHttpCreateProxyResolver .

[in] pcwszUrl

Penunjuk ke string Unicode yang dihentikan null yang berisi URL yang informasi proksinya akan ditentukan.

[in] pAutoProxyOptions

Penunjuk ke struktur WINHTTP_AUTOPROXY_OPTIONS yang menentukan opsi proksi otomatis untuk digunakan.

[in] pContext

Data konteks yang akan diteruskan ke fungsi panggilan balik penyelesaian.

Mengembalikan nilai

Kode status yang menunjukkan hasil operasi.

Kode berikut dapat dikembalikan. Deskripsi
ERROR_IO_PENDING
Operasi ini terus berlanjut secara asinkron.
ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR
Dikembalikan oleh WinHttpGetProxyForUrlEx saat proksi untuk URL yang ditentukan tidak dapat ditemukan.
ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT
Terjadi kesalahan saat menjalankan kode skrip dalam file Konfigurasi Otomatis Proksi (PAC).
ERROR_WINHTTP_INCORRECT_HANDLE_TYPE
Jenis handel yang disediakan salah untuk operasi ini.
ERROR_WINHTTP_INVALID_URL
URL tidak valid.
ERROR_WINHTTP_OPERATION_CANCELLED
Operasi dibatalkan, biasanya karena handel tempat permintaan beroperasi ditutup sebelum operasi selesai.
ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT
File PAC tidak dapat diunduh. Misalnya, server yang direferensikan oleh URL PAC mungkin belum dapat dijangkau, atau server mengembalikan respons 404 NOT FOUND.
ERROR_WINHTTP_UNRECOGNIZED_SCHEME
URL file PAC menentukan skema selain "http:" atau "https:".
ERROR_NOT_ENOUGH_MEMORY
Tidak tersedia cukup memori untuk menyelesaikan operasi yang diminta. (Kode galat Windows)

Keterangan

Fungsi ini mengimplementasikan protokol Penemuan Otomatis Proksi Web (WPAD) untuk mengonfigurasi pengaturan proksi secara otomatis untuk permintaan HTTP. Protokol WPAD mengunduh file Konfigurasi Otomatis Proksi (PAC), yang merupakan skrip yang mengidentifikasi server proksi yang akan digunakan untuk URL target tertentu. File PAC biasanya disebarkan oleh departemen IT dalam lingkungan jaringan perusahaan. URL file PAC dapat ditentukan secara eksplisit atau WinHttpGetProxyForUrlEx dapat diinstruksikan untuk menemukan lokasi file PAC secara otomatis di jaringan lokal.

WinHttpGetProxyForUrlEx hanya mendukung file PAC berbasis ECMAScript.

WinHttpGetProxyForUrlEx harus dipanggil berdasarkan per URL, karena file PAC dapat mengembalikan server proksi yang berbeda untuk URL yang berbeda. Ini berguna karena file PAC memungkinkan departemen IT untuk menerapkan penyeimbangan beban server proksi dengan memetakan (hashing) URL target (ditentukan oleh parameter lpcwszUrl ) ke proksi tertentu dalam array server proksi.

WinHttpGetProxyForUrlEx menyimpan url proksi otomatis dan skrip autoproxy saat penemuan otomatis ditentukan dalam anggota dwFlags dari struktur pAutoProxyOptions . Untuk informasi selengkapnya, lihat Cache Autoproxy.

WinHttpGetProxyForUrlEx menyediakan API yang sepenuhnya Asinkron dan dapat dibatalkan yang tidak dilakukan WinHttpGetProxyForUrl . WinHttpGetProxyForUrlEx juga menyediakan aplikasi dengan daftar proksi lengkap yang dikembalikan oleh skrip PAC yang memungkinkan aplikasi untuk menangani failover dengan lebih baik ke "DIRECT" dan untuk memahami SOCKS jika diinginkan.

WinHttpGetProxyForUrlEx selalu dijalankan secara asinkron dan segera kembali dengan ERROR_IO_PENDING pada keberhasilan. Panggilan balik diatur dengan memanggil WinHttpSetStatusCallback pada hSession yang disediakan oleh WinHttpOpen. Panggil WinHttpSetStatusCallback secara bergantian di hResolver yang disediakan oleh WinHttpCreateProxyResolver untuk memiliki panggilan balik tertentu untuk setiap panggilan.

Anda harus memanggil WinHttpSetStatusCallback sebelum WinHttpCreateProxyResolver. Saat memanggil WinHttpSetStatusCallback, gunakan WINHTTP_CALLBACK_FLAG_REQUEST_ERROR | WINHTTP_CALLBACK_FLAG_GETPROXYFORURL_COMPLETE. Lihat WINHTTP_STATUS_CALLBACK untuk informasi tentang penggunaan panggilan balik.

Setelah panggilan balik status WINHTTP_CALLBACK_STATUS_GETPROXYFORURL_COMPLETE dikembalikan, aplikasi dapat memanggil WinHttpGetProxyResult pada handel resolver yang digunakan untuk menerbitkan WinHttpGetProxyForUrlEx untuk menerima hasil panggilan tersebut.

Jika panggilan gagal setelah mengembalikan ERROR_IO_PENDING maka panggilan balik WINHTTP_CALLBACK_STATUS_REQUEST_ERROR akan dikeluarkan.

Fungsi ini selalu menjalankan di luar proses.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2012 [hanya aplikasi desktop]
Target Platform Windows
Header winhttp.h
Pustaka Winhttp.lib
DLL Winhttp.dll