إرسال طلب POST مع بيانات JSON في Linux

0

أنا أعمل أولاً Postman لاختبار api للقيام بالبساطة POST الطلبات وكل شيء يعمل بشكل جيد لأنه من السهل إضافة القيم في جزء الجسم.

أحتاج الآن أن أفعل الشيء نفسه من وحدة تحكم Linux. حاولت استخدام curl أمر.

curl -X POST -H "Content-Type: application/json" -d'{"DeviceId":"L","TransactionValue":"360","RSSI":"360","Time":"2018-07-30T11:02:00"}' https://IPADDRESS.com.au

وأوامر أخرى تستند إلى حليقة ولكن في كل مرة لدي هذا error log معروض على وحدة تحكم Linux:

(35) ssl_handshake returned - PolarSSL: (-0x7780) SSL - A fatal alert message was received from our peer

لا أفهم لماذا لدي مشكلة في وحدة تحكم Linux وليس في Postman وما هي هذه المشكلة.

شكرا كثيرا مسبقا. في صحتك!!

2 الاجابة

0

الأمر صحيح ، قد تكون المشكلة أن لديك إصدار curl / PolarSSL قديم حيث يبدو أنه يعمل مع ساعي البريد.

هنا مثال يستخدم curl 7.61.0 النشر على httpbin.org:

$ curl -X POST https://httpbin.org/post -H "Content-type: application/json" -d '{"DeviceId":"L","TransactionValue":"360","RSSI":"360","Time":"2018-07-30T11:02:00"}'
{
  "args": {},
  "data": "{\"DeviceId\":\"L\",\"TransactionValue\":\"360\",\"RSSI\":\"360\",\"Time\":\"2018-07-30T11:02:00\"}",
  "files": {},
  "form": {},
  "headers": {
    "Accept": "*/*",
    "Connection": "close",
    "Content-Length": "83",
    "Content-Type": "application/json",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.43.0"
  },
  "json": {
    "DeviceId": "L",
    "RSSI": "360",
    "Time": "2018-07-30T11:02:00",
    "TransactionValue": "360"
  },
  "origin": "178.197.231.122",
  "url": "https://httpbin.org/post"
}

إذا كان المثال السابق يعمل ، فحاول تعيين المضيف ، على سبيل المثال:

$ curl -X POST https://IPADDRESS.com.au \
-H "Host: httpbin.org" \
-H "Content-type: application/json" \
-d '{"DeviceId":"L","TransactionValue":"360","RSSI":"360","Time":"2018-07-30T11:02:00"}'

لاحظ ال -H "Host: httpbin.org" استبداله بنطاقك الخاص.

:مؤلف
0

تكاد تكون المشكلة في مكتبة ssl الخلفية ، في حالتك ، PolarSSL / mbedTLS ، يبدو أن نسختك من 2014 أو أقدم.

ما هو إصدار PolarSSL الذي تستخدمه؟ يمكنك معرفة ذلك عن طريق الجري curl --version ماذا يخرج؟

حاول التحديث إلى أحدث إصدار من MbedTLS وأعد تجميع التجعيد ، وحاول مرة أخرى ، يمكنك العثور على أحدث إصدار هنا: https://tls.mbed.org/tech-updates/releases

(راجع ، يبدو أن PolarSSL و mbedTLS يشيران إلى نفس الشيء ، فقد قاما فقط بتغيير الاسم مرة أخرى في عام 2015. حقيقة أن رسالة الخطأ تشير إليها على أنها PolarSSL تشير إلى أنك تستخدم إصدارًا قديمًا من 2014 أو أقدم )

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام