URL proxy berfungsi saat dikonfigurasi langsung, tetapi autentikasi gagal setelah nilai yang sama dipindahkan ke file batch Windows. Periksa apakah parser batch mengubah tanda persen sebelum klien HTTP menerima URL tersebut.

Ada dua representasi terpisah. Pengodean URL dapat merepresentasikan garis miring terbalik sebagai %5C dan tanda tanya sebagai %3F. Tanda persen literal dalam perintah file batch perlu di-escape sebagai %%.

Untuk akun ilustratif domain\user dengan kata sandi pengganti pass?, file .bat dapat berisi:

set "https_proxy=http://domain%%5Cuser:pass%%[email protected]:8080"

Proses yang diluncurkan setelahnya seharusnya menerima URL yang berisi domain%5Cuser:pass%3F. Tanda persen ganda milik sumber batch, bukan milik URL proxy yang disimpan klien.

Jangan menyalin ejaan batch itu ke file .npmrc atau ke bidang proxy aplikasi: masukan tersebut tidak melewati langkah penguraian batch yang sama. Demikian pula, contoh ini bukan sintaks PowerShell. Pembungkus lain, seperti CALL atau perintah yang dibangun untuk shell kedua, dapat menambahkan proses penguraian lain dan memerlukan peninjauan tersendiri.

Letakkan penetapan SET di dalam tanda kutip seperti yang ditunjukkan agar spasi tak sengaja atau metakarakter shell tidak menjadi bagian dari perintah yang tidak diinginkan. Tanda kutip saja tidak mencegah perluasan persen.

Saat memeriksa hasilnya, bandingkan pengodean yang diharapkan dengan representasi yang disunting alih-alih mencetak URL yang memuat kata sandi ke log bersama. Perbaikan escape shell mempertahankan kredensial; perbaikan itu tidak memilih skema autentikasi yang belum didukung klien.

Artikel terkait