... بدون هروب وسحر آخر
هل هو حقا؟
تحت خيار مثل --raw-payload
نعم ، سيتم إرسال أي بيانات يتم تمريرها عبر STDIN
كصورة نص الطلب ، على سبيل المثال:
$ echo 'raw payload' | http httpbin.org/post
شكرا لك جاكوب!
بخلاف --ignore-stdin
لا أرى أي ذكر لهذا داخل http --help
، فهل يمكن أن يكون إضافة جيدة لنص المساعدة؟ (أيضًا ، عمل رائع في هذا!)
يمكنك أيضًا استخدام http httpbin.org/post <<< 'raw payload'
لكن،
$ echo 'running' | http -v put localhost:5000/state
يقوم بإرسال رأس Content-Type: application/json
.
PUT /state HTTP/1.1
Accept: application/json, */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 8
Content-Type: application/json
Host: localhost:5000
User-Agent: HTTPie/0.9.9
running
والتطبيق المناسب على الطرف المتلقي يحاول بالطبع تحليل ذلك على أنه JSON ، ويفشل.
furkanmustafa application/json
هو نوع المحتوى الافتراضي المستخدم من قبل httpie
.
إذا حددت نوع المحتوى صراحةً في طلبك ، فسيتم حله:
$ echo 'running' |http httpbin.org/post Content-Type:text/plain
أو حتى مع إرسال محتوى مضغوط:
$ echo 'running' |gzip |http httpbin.org/post Content-Type:text/plain Content-Encoding:gzip
يمكنك أيضًا استخدام
http httpbin.org/post <<< 'raw payload'
يبدو أنه لا يعمل مع بوويرشيل ، عمل لي 'rawBody' | http post :8080/api/events
التعليق الأكثر فائدة
نعم ، سيتم إرسال أي بيانات يتم تمريرها عبر
STDIN
كصورة نص الطلب ، على سبيل المثال:https://github.com/jakubroztocil/httpie#redirected -input