2010-11-06 137 views
6

我想用一個oneliner做一個帖子(在這種情況下是twitter)。通過驗證的代理和驗證的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 

此外,--proxy快捷鍵是一個小寫的x,正如cababunga指出的那樣。

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
  • 代理AUTH基本與用戶'[用戶]'
  • CONNECT www.google.com:443 HTTP/1.1
  • 主機:www.google.com:443
  • 代理授權:基本[亂碼]
  • 的User-Agent:捲曲/ [版本]([OS ])libcurl/[ver] OpenSSL/[ver] zlib/[ver]
  • 代理連接:保持活動
  • HTTP/1。1 407需要代理身份驗證
  • 代理身份驗證:協商
  • 代理驗證:NTLM

添加任何你的代理服務器進行身份驗證參數看到國旗,你應該是好去。在本例中,您將添加--proxy-ntlm標誌。

0

我設法與米卡的答案的幫助在這裏執行此:

這是我在最後得到了命令訪問到位桶回購:

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