Làm cách nào tôi có thể thực hiện PUT HTTP với Wget?


37

Tôi đang cố gắng sử dụng Wget để truy cập vào giao diện RESTful , nhưng tôi không thể tìm ra cách thực hiện HTTP PUT với Wget. Tôi làm nó như thế nào? Hay nó không phải là prossible?

Câu trả lời:



52
wget --method=PUT --body-data=<STRING>

Điều này hơi muộn, nhưng tại một số điểm sau bài đăng gốc, họ đã thêm tùy chọn "--method". Tôi không chắc chắn khi nó được thêm vào, nhưng hãy xem https://bugs.debian.org/cgi-bin/orpreport.cgi?orms=684189#24 để biết chi tiết.


5
Điều này nên được chấp nhận câu trả lời.
Vanuan

3
Nên được chấp nhận câu trả lời trong năm 2014, 2016 hoặc bất cứ khi nào. --method param đã không thành công trong wget trở lại vào năm 2010 :(
Bernhard Döbler

4
Không ở trong hộp bận rộn
Dmitry Minkovsky

Có vẻ không hoạt động khi sử dụng với xác thực. Tôi đã thử wget --method=PUTvới xác thực truy cập digest nhưng wget không thực hiện quy trình xác thực như yêu cầu GET tiêu chuẩn.
Joe

--method vẫn không có sẵn trong centos 7.
David V.

21

Do đây là REST của giao diện, tôi nghĩ rằng bạn muốn sử dụng curlvới -X PUT, như thế này:

curl -i -X PUT http://www.example.tld/rest/updateEntity/1234?active=false

Hoặc nếu bạn cần "đăng" dữ liệu từ một tệp, như XML:

curl -i -X PUT -H "Content-Type: application/xml; charset=utf-8" -d @"/tmp/some-file.xml" http://www.example.tld/rest/updateEntity

6

Đối với tôi sau đây làm việc:

curl -T <file-path> <url>

Vì một số lý do khi tôi thực hiện theo nó, không có gì xảy ra (cũng không có lỗi):

curl -X PUT -d <file-path> <url>         (did not work)

1
-dsẽ gửi dữ liệu bạn đã nhập trên dòng lệnh, vì vậy nó sẽ cố gắng PUT đường dẫn tệp dưới dạng văn bản.
che

4

Nếu bạn không muốn sử dụng tệp làm dữ liệu, bạn có thể làm như sau.

curl -X PUT -d "something=blabla&somethingelse=blaha" http://www.example.com
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.