اذهب إلى المحتوى

السؤال

نشر

أحاول أن أقوم بإرسال طلب من نوع post باستخدام مكتبة requests ولكن يبدو أنه لا يمكنني أن أرسل كود JSON، فقط يمكنني أرسل نصوص باستخدام المدخل data كالتالي:

requests.post('https://example.com/post', data="value")

كيف يمكنني أن أقوم بإرسال كود JSON مع الطلب السابق؟

Recommended Posts

  • 0
نشر

يمكنك ببساطة إرسال JSON بواسطة المعامل json بداية من الإصدار  Requests 2.4.2 حيث سيكون الكود كالتالي

url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}

r = requests.post(url, json=payload)
  • ال payload هو البيانات على صيغة JSON

ويمكنك أيضاً استخدام المعامل data ولكن مع استخدام الدالة json.dumps كالتالي

import json #لا تنسى استدعاء json

url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}

r = requests.post(url, data=json.dumps(payload))

 

  • 1
نشر

بدءًا من الإصدار 2.4.2 من مكتبة request ، يمكنك استخدام المُدخل json=  (الذي يأخذ قاموسًا) بدلاً من data=(الذي يأخذ سلسلة) في استدعاء الطلب:

import requests
# طلب POST
r = requests.post('http://httpbin.org/post', json={"key": "value"})
# حالة الطلب
r.status_code
# بيانات JSON
r.json()

وايضاً يمكنك استخدام دالة json.dumps ولكن تذكر بإضافة الرأس الذي يحتوي نوع البيانات content-type

url = "http://localhost:8080"
# بيانات JSON
data = {'key': 'value'}
# رأس نوع البيانات
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
# طلب POST
r = requests.post(url, data=json.dumps(data), headers=headers)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...