Próbuję dodać nagłówek dla mojego żądania przy użyciu, HttpUrlConnection
ale metoda setRequestProperty()
nie wydaje się działać. Strona serwera nie otrzymuje żadnych żądań z moim nagłówkiem.
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()
na URLConnection?connection.setRequestMethod("GET");
(lub POST lub cokolwiek chcesz)?authorization
pusty ciąg. Jeśli którykolwiekusername
lubpassword
jest równy null, toauthorization
będzie pusty ciąg, a nie null. Dlatego finałif
zostanie wykonany, ale"Authorization"
właściwość zostanie ustawiona jako pusta, wydaje mi się.Odpowiedzi:
W przeszłości korzystałem z następującego kodu i działał on z podstawowym uwierzytelnianiem włączonym w TomCat:
Możesz wypróbować powyższy kod. Powyższy kod dotyczy POST i możesz go zmodyfikować, aby uzyskać GET
źródło
postData
w twoim przykładzie?String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Po prostu dlatego, że nie widzę tego fragmentu informacji w powyższych odpowiedziach, powodem, dla którego pierwotnie opublikowany fragment kodu nie działa poprawnie, jest to, że
encodedBytes
zmienna jest wartościąbyte[]
a nieString
wartością. Jeśli przekazaćbyte[]
Donew String()
jak poniżej fragment kodu działa doskonale.źródło
Jeśli używasz Java 8, użyj poniższego kodu.
źródło
W końcu to zadziałało dla mnie
źródło
Twój kod jest w porządku. Możesz również użyć tego samego w ten sposób.
Zwraca kod odpowiedzi 200, jeśli autoryzacja zakończy się powodzeniem
źródło
Z RestAssurd można również wykonać następujące czynności:
źródło
given()
ma być?Krok 1: Uzyskaj obiekt HttpURLConnection
Krok 2: Dodaj nagłówki do HttpURLConnection przy użyciu metody setRequestProperty.
Link referencyjny
źródło