Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi WinHttpCreateUrl membuat URL dari bagian komponen seperti nama host dan jalur.
Sintaks
WINHTTPAPI BOOL WinHttpCreateUrl(
[in] LPURL_COMPONENTS lpUrlComponents,
[in] DWORD dwFlags,
[out] LPWSTR pwszUrl,
[in, out] LPDWORD pdwUrlLength
);
Parameter
[in] lpUrlComponents
Arahkan ke struktur URL_COMPONENTS yang berisi komponen untuk membuat URL.
[in] dwFlags
Bendera yang mengontrol operasi fungsi ini. Parameter ini bisa menjadi salah satu nilai berikut.
| Nilai | Makna |
|---|---|
|
Mengonversi semua karakter yang tidak aman ke urutan escape yang sesuai dalam string jalur yang ditunjukkan oleh anggota lpszUrlPath dan di lpszExtraInfo string informasi tambahan yang ditunjukkan oleh anggota struktur URL_COMPONENTS yang ditunjukkan oleh parameter lpUrlComponents . |
|
Menolak URL sebagai input yang berisi nama pengguna, atau kata sandi, atau keduanya. Jika fungsi gagal karena URL yang tidak valid, panggilan berikutnya ke GetLastError akan mengembalikan ERROR_WINHTTP_INVALID_URL. |
[out] pwszUrl
Penunjuk ke buffer karakter yang menerima URL sebagai string karakter lebar (Unicode).
[in, out] pdwUrlLength
Penunjuk ke variabel jenis bilangan bulat panjang yang tidak ditandatangani yang menerima panjang buffer pwszUrl dalam karakter lebar (Unicode). Ketika fungsi kembali, parameter ini menerima panjang string URL lebar dalam karakter, dikurangi 1 untuk karakter yang mengakhiri. Jika GetLastError mengembalikan ERROR_INSUFFICIENT_BUFFER, parameter ini menerima jumlah karakter luas yang diperlukan untuk menahan URL yang dibuat.
Mengembalikan nilai
Mengembalikan TRUE jika fungsi berhasil, atau FALSE jika tidak. Untuk mendapatkan data kesalahan yang diperluas, hubungi GetLastError. Di antara kode kesalahan yang dikembalikan adalah sebagai berikut.
| Kode Kesalahan | Deskripsi |
|---|---|
|
Terjadi kesalahan internal. |
|
Tidak tersedia cukup memori untuk menyelesaikan operasi yang diminta. (Kode galat Windows) |
Keterangan
Bahkan ketika WinHTTP digunakan dalam mode asinkron, yaitu, ketika WINHTTP_FLAG_ASYNC telah diatur di WinHttpOpen, fungsi ini beroperasi secara sinkron. Nilai yang dikembalikan menunjukkan keberhasilan atau kegagalan. Untuk mendapatkan data kesalahan yang diperluas, hubungi GetLastError.
Contoh
Contoh berikut menunjukkan cara mendekompilasi, atau memecahkan, URL ke dalam subkomponennya, memperbarui komponen, lalu merekonstruksi URL.
URL_COMPONENTS urlComp;
LPCWSTR pwszUrl1 =
L"http://search.msn.com/results.asp?RS=CHECKED&FORM=MSNH&v=1&q=wininet";
DWORD dwUrlLen = 0;
// Initialize the URL_COMPONENTS structure.
ZeroMemory(&urlComp, sizeof(urlComp));
urlComp.dwStructSize = sizeof(urlComp);
// Set required component lengths to non-zero,
// so that they are cracked.
urlComp.dwSchemeLength = (DWORD)-1;
urlComp.dwHostNameLength = (DWORD)-1;
urlComp.dwUrlPathLength = (DWORD)-1;
urlComp.dwExtraInfoLength = (DWORD)-1;
// Crack the URL.
if (!WinHttpCrackUrl( pwszUrl1, (DWORD)wcslen(pwszUrl1), 0, &urlComp))
{
printf("Error %u in WinHttpCrackUrl.\n", GetLastError());
}
else
{
// Change the search data. New data is the same length.
urlComp.lpszExtraInfo = L"?RS=CHECKED&FORM=MSNH&v=1&q=winhttp";
// Obtain the size of the new URL and allocate memory.
WinHttpCreateUrl( &urlComp, 0, NULL, &dwUrlLen);
LPWSTR pwszUrl2 = new WCHAR[dwUrlLen];
// Create a new URL.
if(!WinHttpCreateUrl( &urlComp, 0, pwszUrl2, &dwUrlLen))
{
printf( "Error %u in WinHttpCreateUrl.\n", GetLastError());
}
else
{
// Show both URLs.
printf( "Old URL: %S\nNew URL: %S\n", pwszUrl1, pwszUrl2);
}
// Free allocated memory.
delete [] pwszUrl2;
}
Persyaratan
| Klien minimum yang didukung | Windows XP, Windows 2000 Professional dengan SP3 [hanya aplikasi desktop] |
| Server minimum yang didukung | Windows Server 2003, Windows 2000 Server dengan SP3 [hanya aplikasi desktop] |
| Target Platform | Windows |
| Header | winhttp.h |
| Pustaka | Winhttp.lib |
| DLL | Winhttp.dll |
| Redistribusi | WinHTTP 5.0 dan Internet Explorer 5.01 atau yang lebih baru di Windows XP dan Windows 2000. |
Lihat juga
Tentang Microsoft Windows HTTP Services (WinHTTP)