2010-11-06 25 views
6

Quiero hacer una publicación (twitter en este caso) con un oneliner.curl mediante proxy autenticado y recurso HTTP autenticado

Si no tengo de proxy

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

funciona perfectamente.

Pero cuando estoy detrás de un proxy autenticado, no.

había tryied:

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

que me salte con un proxy

no soportan autenticación básica

Así que sabes lo que estoy haciendo mal?

gracias de antemano.

Respuesta

2

Intente agregar --proxy-digest o --proxy-anyauth. Y creo que para conectar al proxy debe usar minúsculas -x (no -X).

4

Puede poner el nombre de usuario/contraseña en la URL del recurso autenticado para evitar complicaciones adicionales en la línea de comandos.

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

también, el acceso directo --proxy es una x minúscula, como señaló cababunga.

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

respuesta de Cababunga es correcta, pero que se pierden otra opción: --proxy-ntlm. Algunos proxies no se autorizarán correctamente con --proxy-anyauth, por lo que idealmente querrá especificar el método de autenticación que usa su proxy. Si ejecuta curl -v -U user:pass -x proxy:port --url http://www.google.com, usted debe conseguir algo en la línea de lo siguiente:

  • Acerca de conectar() para proxy de [su proxy] puerto [puerto] (# 0)
  • Tratando [IP]. ..
  • conectados
  • conectado a [su proxy] ([IP]) puerto [puerto] (# 0)
  • Establecer túnel de proxy HTTP para autenticación www.google.com:443
  • usando proxy Básico con usuario '[usuario]'
  • CONNECT www.google.com:443 HTTP/1.1 Host
  • : www.google.com:443
  • Autorización proxy: Básico [jerga]
  • User-Agent: rizo/[VER] ([OS ]) libcurl/[ver] OpenSSL/[ver] zlib/[ver]
  • Proxy-Connection: Keep-Alive
  • HTTP/1.1 407 Autenticación de proxy necesaria
  • Proxy-Authenticate: negociar
  • Proxy-Authenticate: NTLM

Añadir una bandera para lo que se ve en el parámetro Proxy-Authenticate y usted debe ser bueno para ir. En este ejemplo, agregaría la bandera --proxy-ntlm.

0

me las arreglé para llevar a cabo esto con la ayuda de la respuesta de la Miqueas aquí:

este es el comando llegué al final para acceder a un acuerdo de recompra BitBucket:

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