2010-11-06 12 views
6

Voglio fare un post (twitter in questo caso) con un oneliner.arricciare tramite proxy autenticato e risorsa http autenticata

Se non ho procura

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

funziona perfettamente.

Ma quando sono dietro un proxy autenticato non lo fa.

avevo tryied:

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

che mi salta con un proxy

non supportano autenticazione base

Così sai che cosa sto facendo male?

grazie in anticipo.

risposta

2

Prova ad aggiungere --proxy-digest o --proxy-anyauth. E penso che per connettersi al proxy si dovrebbe usare la minuscola -x (non -X).

4

Potrebbe essere possibile inserire il nome utente/password nell'URL per la risorsa autenticata per evitare ulteriori complicazioni della riga di comando.

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

Inoltre, la scorciatoia --proxy è una x minuscola, come indicato da cababunga.

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

risposta di Cababunga è corretta, ma si perdono un'altra opzione: --proxy-ntlm. Alcuni proxy non autorizzano correttamente con --proxy-anyauth, quindi idealmente ti consigliamo di specificare il metodo di autenticazione utilizzato dal proxy. Se si esegue curl -v -U user:pass -x proxy:port --url http://www.google.com, si dovrebbe ottenere qualcosa sulla falsariga di quanto segue:

  • A proposito di collegare() per procura [proxy] porta [la porta] (# 0)
  • Cercando [IP]. ..
  • contatto
  • collegato alla porta [proxy] ([IP]) [la porta] (# 0)
  • Stabilire tunnel proxy HTTP per auth www.google.com:443
  • Proxy mediante Di base con l'utente '[utente]'
  • CONNECT www.google.com:443 HTTP/1.1
  • Host: www.google.com:443
  • Proxy-Authorization: Standard [incomprensibile]
  • User-Agent: ricciolo/[ver] ([OS ]) libcurl/[ver] OpenSSL/[ver] zlib/[ver]
  • Connessione proxy: Keep-Alive
  • HTTP/1.1 407 Autenticazione proxy richiesta
  • Proxy-Authenticate: NEGOZIARE
  • Proxy-Authenticate: NTLM

Aggiungi una bandiera per tutto ciò che si vede nel parametro Proxy-Authenticate e si dovrebbe essere pronti per partire. In questo esempio, devi aggiungere il flag --proxy-ntlm.

0

sono riuscito a eseguire questo con l'aiuto di risposta del Micah qui:

questo è il comando che ho ricevuto alla fine di accedere a un repo BitBucket:

curl -u userBitbucket:PwdBitBucket -U userProxy:pwdProxy -x address_proxy:port:proxy --proxy-ntlm http://host:port/projects/project/repos/repo/browse/file