Получите код ответа http для URL-адреса с паролем имени пользователя

Я хочу получить код ответа http для URL-адреса https://example.com/xyz, но для доступа к этому URL-адресу Мне нужно сначала передать имя пользователя и пароль на https://example.com

я пытался бежать

#!/bin/sh
curl -u username:password https://example.com

curl -s -o /dev/null -w "{http_code}" https://example.com/xyz

Но я получаю 401 несанкционированный доступ


person user11068956    schedule 16.03.2020    source источник
comment
После двоеточия (:) между username и password есть пробел.   -  person Paul Hodges    schedule 16.03.2020
comment
Нет, здесь опечатка, при запуске все в порядке.   -  person user11068956    schedule 16.03.2020


Ответы (1)


Без дополнительной информации и знаний о веб-странице, услуге и т. д. может оказаться невозможным дать полный и/или правильный ответ. Однако, поскольку я сталкивался с подобными вопросами в прошлом, я дам здесь несколько советов.

Согласно вашему очень краткому описанию, я предполагаю, что такие команды, как

curl --silent -u "${USERNAME}:${PASSWORD}" "https://example.com/xyz" --output /dev/null --write-out "{http_code}\n" 
curl --silent "https://${USERNAME}:${PASSWORD}@example.com/xyz" --output /dev/null --write-out "{http_code}\n" 

не будет работать правильно, верно?

В зависимости от страницы и сервиса мне может понадобиться сохранить сеанс, сохранить идентификатор или ТОКЕН после входа в систему и использовать его в дальнейшем. т.е. за услугу, которой я пользовался

curl -u "${USERNAME}:${PASSWORD}" -H 'Connection: keep-alive' -D - "https://example.com" |  grep "ID=[a-z0-9]*\|TOKEN = '"

Поэтому позже я «повторно использовал» ID и TOKEN, чем таким образом, как

curl 'https://example.com/xyz'
-H 'Cookie: ID=${ID}'
-H 'Origin: https://example.com'
-H 'Accept-Encoding: gzip, deflate'
-H 'Accept-Language: de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4'
-H 'X-CSRF: ${TOKEN}'
-H 'User-Agent: cURL'
-H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8'
-H 'Accept: */*'
-H 'Referer: https://example.com/xyz'
-H 'X-Requested-With: XMLHttpRequest'
-H 'Connection: keep-alive

и получить полное содержимое страницы.

person U880D    schedule 16.03.2020