Я пытаюсь добавить заголовок для моего запроса, HttpUrlConnection
но этот метод setRequestProperty()
не работает. Серверная сторона не получает никаких запросов с моим заголовком.
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");
(или POST или как вы хотите)?authorization
пустую строку. Если либоusername
илиpassword
является нулем, тоauthorization
будет пустой строкой, а не нулем. Поэтому финалif
будет выполнен, но"Authorization"
свойство будет установлено пустым, мне кажется.Ответы:
В прошлом я использовал следующий код, и он работал с базовой аутентификацией, включенной в TomCat:
Вы можете попробовать приведенный выше код. Код выше для POST, и вы можете изменить его для GET
источник
postData
в вашем примере?String basicAuth = "Basic " + java.util.Base64.getEncoder().encodeToString(userCredentials.getBytes());
Просто потому, что я не вижу этой информации в ответах выше, причина, по которой первоначально размещенный фрагмент кода работает неправильно, состоит в том, что
encodedBytes
переменная является а,byte[]
а неString
значением. Если вы передадитеbyte[]
a,new String()
как показано ниже, фрагмент кода работает отлично.источник
Если вы используете Java 8, используйте код ниже.
источник
Наконец-то это сработало для меня
источник
Ваш код в порядке. Вы также можете использовать то же самое таким образом.
Код возврата возврата 200, если авторизация прошла успешно
источник
С RestAssurd вы также можете сделать следующее:
источник
given()
должно быть?Шаг 1: Получить объект HttpURLConnection
Шаг 2: Добавьте заголовки в HttpURLConnection, используя метод setRequestProperty.
Ссылка ссылка
источник