проверка локон работает, но я не могу связаться с другими страницами

Я пытаюсь использовать cURL для автоматизации некоторых процессов, которые мы обычно делаем с помощью веб-сайта.

Я смог войти на сайт с помощью curl и следующей команды:

curl -k -v -i --user "[user]:[password]" -D cookiejar.txt https://link/to/home/page 

Однако, когда я пытаюсь использовать сгенерированный файл cookiejar.txt для последующих вызовов, я не получаю авторизацию.

Браузер отправляет на сервер следующие данные:

 GET /[my other page] HTTP/1.1 Host [my host] User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language en-US,en;q=0.5 Accept-Encoding gzip, deflate Cookie JSESSIONID=[my session id] Authorization Basic [my encrypted string] Connection keep-alive 

Итак, я изменил свой второй вызов cURL на что-то вроде этого, чтобы быть уверенным, что все эти параметры также отправлены:

 curl -i -X GET -k -v \ -b cookiejar.txt \ -H "Authorization: Basic [my encrypted string]" \ -H "Host: [my host]" \ -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0" \ -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \ -H "Content-Type: application/x-www-form-urlencoded" \ -H "Accept-Language: en-US,en;q=0.5" \ -H "Connection: Keep-Alive" \ https://[my other page] 

К сожалению, это не работает. Если я опускаю заголовок авторизации , я получаю ошибку 401. Если я включу его в свой запрос cURL, я получу страницу входа (с ответом 200 OK).

В консоли нет ошибок, чтобы дать мне хотя бы намек на то, в чем проблема.

Я ценю любую идею, чтобы помочь мне пройти эту проблему.

  • разрешение изменения x11vnc
  • Как передать высокое разрешение от GRUB2 во FreeBSD?
  • Настройки разрешения GRUB2 не соблюдаются Debian - мусор на экране
  • Увеличение разрешения CentOS VM
  • Разрешение дисплея и монитора дисплея Mint 16
  • Не удалось войти в систему из-за неправильного разрешения экрана
  • Конфигурация Xorg для незарегистрированного разрешения
  • Как определить соотношение сторон монитора?
  • 2 Solutions collect form web for “проверка локон работает, но я не могу связаться с другими страницами”

    Это может быть связано с перенаправлением во время авторизации. См. --location-trusted -L и --location-trusted в man curl . Также попробуйте проверить -w redirect_url чтобы увидеть фактическую страницу, на которую вы были бы перенаправлены, если это так.

      -L, --location (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place. If used together with -i, --include or -I, --head, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it won't be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to follow by using the --max-redirs option. When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified method. 

      --location-trusted (HTTP/HTTPS) Like -L, --location, but will allow sending the name + password to all hosts that the site may redirect to. This may or may not introduce a security breach if the site redirects you to a site to which you'll send your authentication info (which is plaintext in the case of HTTP Basic authentication). 

      -w, --write-out <format> Defines what to display on stdout after a completed and successful operation. The format is a string that may contain plain text mixed with any number of variables. The string can be speci‐ fied as "string", to get read from a particular file you specify it "@filename" and to tell curl to read the format from stdin you write "@-". The variables present in the output format will be substituted by the value or text that curl thinks fit, as described below. All variables are specified as %{variable_name} and to output a normal % you just write them as %%. You can output a newline by using \n, a carriage return with \r and a tab space with \t. NOTE: The %-symbol is a special symbol in the win32-environment, where all occurrences of % must be doubled when using this option. The variables available are: redirect_url When an HTTP request was made without -L to follow redirects, this variable will show the actual URL a redirect would take you to. (Added in 7.18.2) 

    В конце концов я смог достичь желаемой страницы.

    Кажется, что я не следовал правильной последовательности вызовов URL. Как только я это сделал, нужная страница была восстановлена ​​правильно.

    Большое спасибо за быстрые ответы!

    Linux и Unix - лучшая ОС в мире.