คำสั่ง cURL รันใน Linux แต่ไม่ใช่ Windows 2008


2

ฉันได้ติดตั้ง cURL บน Windows 2008 Server แล้วและพยายามเรียกใช้คำสั่งด้านล่าง คำสั่งนี้ทำงานได้ดีบนเครื่อง Ubuntu บน LAN เดียวกัน แต่เมื่อฉันเรียกใช้ใน Windows ฉันได้รับข้อผิดพลาดเหล่านี้:

curl -H "Content-Type: application/json" -X POST -d '{ "entity_id": "switch.study_cam" }' https://192.168.1.99:8123/api/services/switch/turn_off?api_password=MyAPIPassword --insecure
curl: (6) Could not resolve host: entity_id
curl: (6) Could not resolve host: switch.study_cam
curl: (3) [globbing] unmatched close brace/bracket in column 1
{"message": "Data should be valid JSON"}

ฉันทดสอบ cURL บน Windows ด้วย http://www.google.com และส่งคืน HTML ที่ถูกต้องดังนั้นดูเหมือนว่าจะติดตั้งอย่างถูกต้อง

มีความแตกต่างทางไวยากรณ์ระหว่าง cURL สำหรับ Windows และ Linux หรือมีคำอธิบายอื่น ๆ เกี่ยวกับสาเหตุที่คำสั่งข้างต้นล้มเหลวใน Windows


ปัญหาน่าจะเป็นพรอมต์คำสั่ง windows แปลความหมายของคำพูดเดี่ยวและคู่ที่แตกต่างกันไม่ใช่เกี่ยวกับ curl
hardillb

ปัญหาคือความแตกต่างที่เป็นไปได้มากที่สุดในเชลล์ที่คุณใช้เพราะเช่น cmd.exe และ bash รองรับไวยากรณ์ที่แตกต่างกัน เมื่อดูที่ข้อผิดพลาดมันจะเริ่มต้นที่ ', {และ "เข้าสู่การเล่นแน่นอนคุณต้องหลบหนีหรือใช้ ^ หรือดังนั้น
Thorsten Schöning

คำตอบ:


1

ปัญหาน่าจะเป็นพรอมต์คำสั่ง windows แปลความหมายของคำพูดเดี่ยวและคู่ที่แตกต่างกันไม่ใช่เกี่ยวกับ curl

ลองย้อนกลับคำพูดคู่และคำพูดเดี่ยวในส่วน JSON:

curl -H "Content-Type: application/json" -X POST -d "{ 'entity_id': 'switch.study_cam' }" https://192.168.1.99:8123/api/services/switch/turn_off?api_password=MyAPIPassword --insecure

1

ฉันจะใส่ JSON ไว้ในไฟล์เช่น json.txtและใช้ curl -d @json.txt เพื่อหลีกเลี่ยงปัญหาการจัดการใบเสนอราคาโดยเชลล์

นี้จะให้อะไรเช่น

curl -H "Content-Type: application/json" -X POST -d @json.txt \
https://192.168.1.99:8123/api/services/switch\
/turn_off?api_password=MyAPIPassword --insecure

หากคุณพลาดเชลล์ Unix MSYS2 เป็นระบบที่ดีในการเพิ่มเครื่องมือตามปกติลงในเครื่อง Windows ของคุณ (ต้องใหม่กว่า Windows XP / Windows Server 2003)

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