2010-11-06 7 views
6

Я хочу сделать сообщение (твиттер в этом случае) с oneliner.завиток через аутентифицированный прокси и аутентифицированный http-ресурс

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

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

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

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

Я tryied:

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

Что перепрыгнуть меня с

прокси не поддерживают базовой аутентификации

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

благодарит заранее.

ответ

2

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

4

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

http://username:[email protected]/statuses/update.xml 

также, -прокси-ярлык - это строчная буква x, как указано в каббанге.

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

ответ Cababunga является правильным, но они упускают еще один вариант: --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
  • Proxy AUTH с помощью Basic с пользователем '[пользователь]'
  • CONNECT www.google.com:443 HTTP/1.1
  • Ведущие: www.google.com:443
  • Proxy-Authorization: Basic [бред]
  • User-Agent: завиток/[версия] ([OS ]) libcurl/[ver] OpenSSL/[ver] zlib/[ver]
  • Прокси-соединение: Keep-Alive
  • HTTP/1.1 407 Proxy Authentication Required
  • Proxy-Authenticate: ПЕРЕГОВОРЫ
  • Proxy-Authenticate: NTLM

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

0

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

это команда, которую я получил в конце, чтобы получить доступ к Bitbucket репо:

curl -u userBitbucket:PwdBitBucket -U userProxy:pwdProxy -x address_proxy:port:proxy --proxy-ntlm http://host:port/projects/project/repos/repo/browse/file 
Смежные вопросы