我想用oneliner做一个帖子(本例中是twitter).
如果我没有代理
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
它让我跳了起来
proxy do not support basic auth
所以你知道我做错了什么吗?
提前致谢.
解决方法
Cababunga的答案是正确的,但他们错过了另一种选择: – proxy-ntlm.某些代理不会使用–proxy-anyauth正确授权,因此理想情况下,您需要指定代理使用的身份验证方法.如果你运行curl -v -U user:pass -x proxy:port –url http://www.google.com,你应该得到以下内容:
>关于connect()到代理[your proxy] port [your port](#0)
>尝试[IP] ……
>连接
>连接到[您的代理]([IP])端口[您的端口](#0)
>建立到www.google.com:443的HTTP代理隧道
>使用Basic与用户'[user]’进行代理验证
> CONNECT www.google.com:443 HTTP / 1.1
>主持人:www.google.com:443
>代理授权:基本[乱码]
> User-Agent:curl / [ver]([OS])libcurl / [ver] OpenSSL / [ver] zlib / [ver]
>代理连接:保持活跃
> HTTP / 1.1 407需要代理身份验证
>代理 – 身份验证:NEGOTIATE
>代理 – 身份验证:NTLM
为您在Proxy-Authenticate参数中看到的任何内容添加标记,您应该很高兴.在此示例中,您将添加–proxy-ntlm标志.