2010-11-06 26 views
6

Tôi muốn đăng một bài (trong trường hợp này) với một trình duyệt trực tuyến.curl thông qua proxy đã xác thực và tài nguyên http đã xác thực

Nếu tôi không có ủy quyền

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

tác phẩm hoàn hảo.

Nhưng khi tôi đứng sau một proxy được xác thực thì không.

tôi đã tryied:

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

Rằng nó nhảy tôi với một proxy

không hỗ trợ auth cơ bản

Vì vậy, bạn có biết những gì tôi đang làm sai?

cảm ơn trước.

Trả lời

2

Hãy thử thêm --proxy-digest hoặc --proxy-anyauth. Và tôi nghĩ rằng để kết nối với proxy, bạn nên sử dụng chữ thường -x (không phải -X).

4

Bạn có thể đặt tên người dùng/mật khẩu trong URL cho tài nguyên được xác thực để tránh có các biến chứng dòng lệnh bổ sung.

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

cũng, phím tắt --proxy là chữ thường x, như cababunga đã chỉ ra.

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

Câu trả lời của Cababunga là chính xác nhưng thiếu tùy chọn khác: --proxy-ntlm. Một số proxy sẽ không ủy quyền chính xác với --proxy-anyauth, vì vậy, lý tưởng nhất là bạn sẽ muốn chỉ định phương thức xác thực mà proxy của bạn sử dụng. Nếu bạn chạy curl -v -U user:pass -x proxy:port --url http://www.google.com, bạn sẽ nhận được một cái gì đó dọc theo dòng trong các cách sau:

  • Về để connect() để proxy [proxy] cổng [cổng của bạn] (# 0)
  • Cố [IP]. ..
  • kết nối
  • kết nối với [proxy của bạn] ([IP]) cổng [cổng của bạn] (# 0)
  • Xây dựng đường hầm HTTP proxy để www.google.com:443
  • Proxy auth sử dụng Cơ bản với người dùng '[người dùng]'
  • CONNECT www.google.com:443 HTTP/1.1
  • Host: www.google.com:443
  • quyền proxy: Cơ bản [vô nghia]
  • User-Agent: curl/[ver] ([OS ]) libcurl/[ver] OpenSSL/[ver] zlib/[ver]
  • Kết nối proxy: Giữ bí mật
  • HTTP/1.1 407 Proxy Xác thực buộc
  • Proxy-Authenticate: THƯƠNG LƯỢNG
  • Proxy-Authenticate: NTLM

Thêm một lá cờ cho bất cứ điều gì mà bạn nhìn thấy trong tham số Proxy-Authenticate và bạn sẽ được tốt để đi. Trong ví dụ này, bạn sẽ thêm cờ --proxy-ntlm.

0

tôi quản lý để thực hiện điều này với sự giúp đỡ của câu trả lời của Micah đây:

đây là lệnh tôi đã ở cuối để truy cập vào một 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 
Các vấn đề liên quan