curl json โพสต์คำขอผ่านเทอร์มินัลไปยังแอพราง


109

ฉันกำลังพยายามสร้างผู้ใช้ในแอพทางรถไฟด้วยคำสั่ง curl จาก os x terminal ไม่ว่าฉันจะจัดรูปแบบข้อมูลอย่างไรแอปจะส่งคืนการตอบกลับที่ไม่ผ่านการตรวจสอบความถูกต้องของฉัน

curl http://localhost:3000/api/1/users.json -i -X POST -d {"user":{"first_name":"firstname","last_name":"lastname","email":"email@email.com","password":"app123","password_confirmation":"app123"}}"

ฉันลองทุกรูปแบบแล้ว ฉันได้ลองใช้เครื่องหมายวงเล็บ [] แล้วฉันได้ลองใช้ user = {data .. } แล้วและดูเหมือนจะไม่ได้ผล ความคิดใด ๆ ?


ทำไมไม่ใช้$ rails cและUser.create :first_name => 'John', :last_name => 'Smith', ...?
coreyward

23
@coryward: นั่นจะเป็นการเอาชนะจุดประสงค์ทั้งหมดของ API
Wukerplank

มันทำให้ฉันนิ่งงันจริงๆ
chris sun

สวัสดี Bob อาจพบปัญหา แต่ในกรณีที่สามารถช่วยได้นี่คือโพสต์ที่ฉันพบเมื่อวานนี้: squarism.com/2011/04/01/how-to-write-a-ruby-rails-3-rest-apiเกี่ยวกับ XML แต่อาจช่วยได้ ขอแสดงความนับถืออย่างสูง.
plang

คำตอบ:


227

ก่อนอื่นมีสิ่งที่ไม่เกี่ยวข้อง "ในตอนท้ายของคำสั่งของคุณ

ลองทำตามนี้

curl -v \
  -H "Accept: application/json" \
  -H "Content-type: application/json" \
  -X POST \
  -d ' {"user":{"first_name":"firstname","last_name":"lastname","email":"email@email.com","password":"app123","password_confirmation":"app123"}}' \
  http://localhost:3000/api/1/users

นั่นคือมัน ฉันคิดว่าเมื่อคืนนี้ต้องใช้ -H Accept และ Content-type
chris sun

สวัสดีฉันกำลังเรียกสคริปต์เช่นนี้abc.com/?a=4&b= {"x": "y"} บอกได้ไหมว่าใน curl terminal จะเป็นอย่างไร ??
user739711

อืมในกรณีของฉันฉันต้องล้อม URL เป้าหมายด้วยเครื่องหมายคำพูด
Jonathan Lin

1
ฉันสามารถลบสวิตช์ -v (verbose) และ -H "ยอมรับ: ... " จากด้านบนและมันก็ยังใช้ได้ดีสำหรับฉัน
แดน

2
คิดว่าคุณสามารถลบ -X POST ได้เช่นกันเนื่องจาก ur ใช้ -d
Luke W
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.