curl PATCH - JSON ถูกส่งเป็นข้อมูลข้อความแบบบรรทัด

การใช้ curl เพื่อส่ง PATCH ไปยังบริการเว็บของฉันและได้รับข้อผิดพลาด:

Bad Request, The request sent by the client was syntactically incorrect. Apache Tomcat/8.0.37

ในขณะที่ส่ง GET และ POST โดยใช้ curl ก็ไม่มีปัญหา การใช้ Swagger ส่ง PATCH เดียวกันนั้นไม่มีปัญหา ดังนั้นการใช้ WireShark เพื่อเปรียบเทียบเคส Swagger (ดี) และเคส curl (แย่)

กรณีผยอง (ดี): กรณีผยอง (ดี)

กรณี curl (ไม่ดี): ตัวพิมพ์ขด (ไม่ดี)

ในกรณีที่ดี 0xA จะถูกแทรกหลัง "{" และ "," curl ไม่ได้ทำสิ่งนี้และเครื่องหมายคำพูดคู่หายไป

นี่คือ Swagger UI: Swagger UI (ดี)

และนี่คือคำสั่ง curl ของฉันที่ทำงานบน Windows Command Prompt คำสั่ง curl (ไม่ดี)

แอป Chrome ARC ได้รับการตอบสนองเช่นกัน: ป้อนคำอธิบายรูปภาพที่นี่

ข้อเสนอแนะใด ๆ ที่ชื่นชม


person brewphone    schedule 05.02.2017    source แหล่งที่มา


คำตอบ (1)


ปัญหาได้รับการแก้ไขโดยทำตามขด:

curl --request PATCH "http://......................" ^
    --header "Content-Type: application/json" ^
    --header "Accept: application/json" ^
    --header "Authorization: ..............." ^
    --data "{\"op\":\"add\",\"path\":\"/user\",\"value\":\"%~1\"}"  

เพราะมันทำงานบน Windows

person brewphone    schedule 06.02.2017