ฉันจะทำ HTTP PUT ด้วย Wget ได้อย่างไร


37

ฉันพยายามใช้Wgetเพื่อเข้าถึงอินเตอร์เฟสRESTfulแต่ฉันไม่สามารถหาวิธีทำ HTTP PUT กับ Wget ได้ ฉันจะทำมันได้อย่างไร หรือมันอาจจะเป็นไปไม่ได้?

คำตอบ:



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

มันช้าไปหน่อย แต่ในบางจุดหลังจากโพสต์ดั้งเดิมพวกเขาเพิ่มตัวเลือก "--method" ฉันไม่แน่ใจว่าจะถูกเพิ่มเมื่อใด แต่โปรดดูhttps://bugs.debian.org/cgi-bin/bugreport.cgi?bug=684189#24เพื่อดูรายละเอียด


5
คำตอบนี้ควรได้รับการยอมรับ
Vanuan

3
ควรได้รับคำตอบในปี 2014, 2016 หรือเมื่อใดก็ตาม - วิธี param ไม่ได้ประโยชน์ในการย้อนกลับไปในปี 2010 :(
แบร์นฮาร์ดDöbler

4
ไม่ได้อยู่ในกล่องไม่ว่าง
Dmitry Minkovsky

ดูเหมือนจะไม่ทำงานเมื่อใช้กับการตรวจสอบสิทธิ์ ฉันลองwget --method=PUTใช้การพิสูจน์ตัวตนการเข้าถึงแบบแยกย่อย แต่ wget ไม่ได้ดำเนินการตามขั้นตอนการรับรองความถูกต้องเช่นเดียวกับคำขอ GET มาตรฐาน
โจ

- วิธียังไม่มีให้บริการใน centos 7
David V.

21

เนื่องจากนี่เป็นอินเทอร์เฟซRESTฉันคิดว่าคุณต้องการใช้curlด้วย-X PUTเช่นนี้:

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

หรือถ้าคุณต้องการ "โพสต์" ข้อมูลจากไฟล์เช่น 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

สำหรับฉันทำงานต่อไปนี้:

curl -T <file-path> <url>

ด้วยเหตุผลบางอย่างเมื่อฉันทำตามมันไม่มีอะไรเกิดขึ้น (ไม่มีข้อผิดพลาดเช่นกัน):

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

1
-dจะส่งข้อมูลที่คุณป้อนในบรรทัดคำสั่งดังนั้นมันจะพยายามใส่เส้นทางของไฟล์เป็นข้อความ
che

4

หากคุณไม่ต้องการใช้ไฟล์เป็นข้อมูลคุณสามารถทำสิ่งต่อไปนี้

curl -X PUT -d "something=blabla&somethingelse=blaha" http://www.example.com
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.