прокручиваться через аутентифицированный прокси и аутентифицированный http ресурс - PullRequest
9 голосов
/ 06 ноября 2010

Я хочу сделать пост (в данном случае, твиттер) с помощью oneliner.

Если у меня нет прокси

curl -u user:pass -d status="message" http://twitter.com/statuses/update.xml

, работает отлично.

Но когда я нахожусь за аутентифицированным прокси, это не так.

Я пытался:

curl -X proxy:port -U proxyUser:proxyPass -u user:pass -d status="message" http://twitter.com/statuses/update.xml

То, что он прыгает на меня с

прокси, не делаетsupport basic auth

Так вы знаете, что я делаю не так?

заранее спасибо.

Ответы [ 5 ]

18 голосов
/ 28 февраля 2013

Ответ Кабабунги правильный, но у них нет другого варианта: --proxy-ntlm.Некоторые прокси не будут правильно авторизоваться с помощью --proxy-anyauth, поэтому в идеале вы захотите указать метод аутентификации, который использует ваш прокси.Если вы запустите curl -v -U user:pass -x proxy:port --url http://www.google.com, вы должны получить что-то вроде следующего:

  • О подключении () к порту прокси [ваш прокси] [ваш порт] (# 0)
  • Попытка [IP] ...
  • подключено
  • Подключено к порту [ваш прокси] ([IP]) [ваш порт] (# 0)
  • УстановитьПрокси-туннель HTTP для www.google.com:443
  • Проверка подлинности прокси с использованием Basic с пользователем '[user]'
  • ПОДКЛЮЧИТЕ www.google.com:443 HTTP / 1.1
  • Хост: www.google.com:443
  • Прокси-авторизация: базовая [gibberish]
  • Пользователь-агент: curl / [ver] ([OS]) libcurl / [ver] OpenSSL/ [ver] zlib / [ver]
  • Proxy-Connection: Keep-Alive
  • HTTP / 1.1 407 Proxy Authentication Required
  • Proxy-Authenticate: NEGOTIATE
  • Proxy-Authenticate: NTLM

Добавьте флаг для всего, что вы видите в параметре Proxy-Authenticate, и вам будет хорошо идти.В этом примере вы бы добавили флаг --proxy-ntlm.

4 голосов
/ 06 ноября 2010

Вы можете добавить имя пользователя / пароль в URL для аутентифицированного ресурса, чтобы избежать дополнительных сложностей командной строки.

http://username:password@twitter.com/statuses/update.xml

также, ярлык --proxy - это строчная буква xCababunga указал.

curl -x proxyaddr:port -U proxyUser:proxyPass -u user:pass -d status="message" http://twitter.com/statuses/update.xml
2 голосов
/ 06 ноября 2010

Попробуйте добавить --proxy-digest или --proxy-anyauth. И я думаю, что для подключения к прокси вы должны использовать нижний регистр -x (не -X).

0 голосов
/ 28 марта 2017

Вы можете попробовать использовать SOCKS v5 вместо v4:

$ curl --proxy socks5://proxyUser:proxyPass@proxy:port ...
0 голосов
/ 15 декабря 2016

Мне удалось сделать это с помощью ответа Мики здесь:

это команда, которую я получил в конце для доступа к репозиторию BitBucket:

curl  -u userBitbucket:PwdBitBucket -U userProxy:pwdProxy -x address_proxy:port:proxy --proxy-ntlm http://host:port/projects/project/repos/repo/browse/file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...