Я пытаюсь отправить запрос http GET. Вот как выглядит запрос:
https://example.com/verify?name="A"&grade="A"
Header: "myheader":"abcde1213"
Это пользовательский заголовок, который аутентифицирует отправителя этого запроса.
Я попробовал это, используя Postman и curl, и это работает. Однако, когда я пытаюсь сделать это в коде, используя HttpURLConnection в Android, я всегда получаю ошибку 401 от сервера, указывающую, что аутентификация вышеуказанного ключа не работает.
Что я добавил в коде:
URL obj = new URL(GetURL);
HttpURLConnection con = obj.openConnection();
con.setRequestMethod("GET");
con.addRequestProperty("myheader","abcde1213");
Я даже выполнил getRequestProperty («myheader») и подтвердил, что он возвращает правильное значение.
Однако сервер не принимает это значение и выдает ошибку 401. При дальнейшем расследовании выясняется, что параметры http-заголовка и заголовки разные. Вышеупомянутые функции addRequestParameter или setRequestParameter только добавляют или обновляют параметры http-запроса и не устанавливают заголовки.
Из быстрого онлайн-поиска я не вижу подходящего метода в HttpURLConnection, чтобы добавить заголовок. Пожалуйста, предложите, как мы могли бы сделать это.
Как упомянуто выше, этот http-запрос с вышеуказанным заголовком работает на curl и Postman без каких-либо ошибок - что говорит мне, что запрос и аутентификация с использованием заголовков работают. Тем не менее, заголовок не устанавливается правильно с использованием вышеупомянутого класса HttpUrlConnection.
Заранее спасибо!
Редактировать: я просмотрел ссылку, которой поделились. У парня, который задал вопрос, вероятно, была та же проблема, что и у меня, но предлагаемые решения, похоже, совсем другие. Здесь я пытаюсь авторизовать пользователя с помощью настраиваемого заголовка в запросе http, который уникален для сервера Rest API, с которым я разговариваю.
Я не могу добавить этот пользовательский заголовок. Я уже попробовал большинство решений, предложенных до публикации здесь.
Примечание: хотел повторить - вышеуказанный запрос работает на curl и Postman. Почтальон имеет возможность генерировать код, необходимый для запроса, но для Java он использует только некоторую библиотеку, а не метод HttpURLConnection.