Cara Menambah Pengepala pada Permintaan HttpURLConnection
Apabila bekerja dengan permintaan HTTP, menambah pengepala tersuai adalah penting untuk mengesahkan permintaan, menghantar data tambahan, dan mengawal tingkah laku pelayan. Walau bagaimanapun, pengguna telah menghadapi masalah dengan kaedah setRequestProperty() dalam HttpURLConnection, mempersoalkan keberkesanannya. Artikel ini menyelidiki isu ini dan menyediakan penyelesaian.
Kod yang diberikan menunjukkan percubaan untuk menambah pengepala Kebenaran pada permintaan HTTP menggunakan setRequestProperty(). Walau bagaimanapun, pelayan dilaporkan tidak menerima pengepala.
Untuk menangani perkara ini, adalah penting untuk menyemak sama ada pengepala dihantar dengan betul. Satu isu yang mungkin ialah badan permintaan telah ditulis sebelum pengepala ditetapkan. Dalam kes sedemikian, pengepala mungkin tidak disertakan dalam permintaan. Untuk menyelesaikan masalah ini, pengepala hendaklah ditetapkan sebelum sebarang output ditulis.
Sebagai alternatif, pendekatan berbeza boleh digunakan untuk menambah pengepala, seperti yang ditunjukkan dalam penyelesaian yang disediakan:
URL myURL = new URL(serviceURL); HttpURLConnection myURLConnection = (HttpURLConnection)myURL.openConnection(); String userCredentials = "username:password"; String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userCredentials.getBytes())); myURLConnection.setRequestProperty ("Authorization", basicAuth); myURLConnection.setRequestMethod("POST"); myURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); myURLConnection.setRequestProperty("Content-Length", "" + postData.getBytes().length); myURLConnection.setRequestProperty("Content-Language", "en-US"); myURLConnection.setUseCaches(false); myURLConnection.setDoInput(true); myURLConnection.setDoOutput(true);
Ini kod mengkonfigurasi permintaan POST dan secara manual menetapkan pengepala Kebenaran dengan sintaks yang betul menggunakan pengekodan Base64. Dengan menetapkan pengepala secara eksplisit, ia memastikan bahawa ia disertakan dalam permintaan. Selain itu, pengepala Panjang Kandungan juga ditetapkan, yang penting untuk permintaan POST dengan badan.
Dengan melaksanakan penyelesaian ini, pengguna boleh menambah pengepala tersuai dengan berkesan pada permintaan HttpURLConnection mereka, mendayakan pengesahan dan kawalan permintaan yang betul.
Atas ialah kandungan terperinci Mengapa Saya Tidak Dapat Menetapkan Pengepala Menggunakan Kaedah setRequestProperty() HttpURLConnection?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!