Saya mencoba menambahkan header untuk permintaan saya menggunakan HttpUrlConnection
tetapi metode setRequestProperty()
ini tampaknya tidak berfungsi. Sisi server tidak menerima permintaan apa pun dengan tajuk saya.
HttpURLConnection hc;
try {
String authorization = "";
URL address = new URL(url);
hc = (HttpURLConnection) address.openConnection();
hc.setDoOutput(true);
hc.setDoInput(true);
hc.setUseCaches(false);
if (username != null && password != null) {
authorization = username + ":" + password;
}
if (authorization != null) {
byte[] encodedBytes;
encodedBytes = Base64.encode(authorization.getBytes(), 0);
authorization = "Basic " + encodedBytes;
hc.setRequestProperty("Authorization", authorization);
}
connect()
URLConnection?connection.setRequestMethod("GET");
(atau POST atau apa pun yang Anda inginkan)?authorization
ke string kosong. Jika salahusername
ataupassword
nol, makaauthorization
akan menjadi string kosong, bukan nol. Oleh karena itu, finalif
akan dieksekusi, tetapi"Authorization"
propertinya akan kosong, menurut saya.Jawaban:
Saya telah menggunakan kode berikut di masa lalu dan itu berhasil dengan otentikasi dasar yang diaktifkan di TomCat:
Anda dapat mencoba kode di atas. Kode di atas adalah untuk POST, dan Anda dapat memodifikasinya untuk GET
sumber
postData
berasal dalam contoh Anda?String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Hanya karena saya tidak melihat sedikit informasi ini di jawaban di atas, alasan cuplikan kode yang semula diposting tidak berfungsi dengan benar adalah karena
encodedBytes
variabelnya adalah abyte[]
dan bukanString
nilai. Jika Anda meneruskanbyte[]
ke anew String()
seperti di bawah ini, cuplikan kode berfungsi dengan baik.sumber
Jika Anda menggunakan Java 8, gunakan kode di bawah ini.
sumber
Akhirnya ini berhasil bagi saya
sumber
Kode Anda baik-baik saja. Anda juga dapat menggunakan hal yang sama dengan cara ini.
Pengembalian kode respon 200 jika otorisasi berhasil
sumber
Dengan RestAssurd Anda juga dapat melakukan hal berikut:
sumber
given()
seharusnya?Langkah 1: Dapatkan objek HttpURLConnection
Langkah 2: Tambahkan header ke HttpURLConnection menggunakan metode setRequestProperty.
Tautan referensi
sumber