Apakah Anda ingin mengirim data JSON ke server menggunakan Python Requests? Jika ya, Anda berada di tempat yang tepat! Dalam postingan blog ini, kita akan membahas cara menggunakan Python Requests untuk mengirim data JSON dengan metode POST. Kita akan membahas semuanya mulai dari dasar-dasar mengirim permintaan POST hingga menangani respons yang diterima dari server, dan bahkan menangani kesalahan yang mungkin terjadi di sepanjang jalan. Jadi, mari kita mulai!
Python Requests
Python Requests adalah pustaka Python 3.7+ yang menyederhanakan proses pengiriman permintaan HTTP/1.1. Pustaka ini menyediakan API sederhana untuk berinteraksi dengan metode HTTP seperti GET, POST, PUT, PATCH dan lainnya.
Python Requests: Metode HTTP POST
Cuplikan kode berikut menunjukkan cara menggunakan pustaka requests
untuk mengirim permintaan HTTP POST:
import requests
url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
response = requests.post(url, data=data)
print(response.status_code)
print(response.content)
Dalam contoh ini, kita mengirim permintaan HTTP POST ke https://www.example.com/api
dengan payload JSON yang berisi nama pengguna dan kata sandi. Metode requests.post()
digunakan untuk mengirim permintaan, dan kode status respons serta konten dicetak ke konsol.
Anda dapat menginstal pustaka requests
menggunakan perintah berikut:
python -m pip install requests
Dalam postingan blog ini, kita akan fokus pada cara menggunakan Python Requests untuk mengirim permintaan POST dengan data JSON.
Apa itu JSON?
JSON adalah singkatan dari JavaScript Object Notation. Ini adalah format standar untuk merepresentasikan data terstruktur. Ini adalah format berbasis teks yang menggunakan teks yang mudah dibaca manusia untuk menyimpan dan mengirimkan objek data yang terdiri dari pasangan atribut-nilai dan array (atau nilai serializable lainnya). JSON umumnya digunakan untuk mengirimkan data dalam aplikasi web, seperti mengirim data dari server ke klien, atau sebaliknya.
JSON dapat merepresentasikan enam jenis data secara native: string, angka, boolean, null, array, dan objek. Misalnya, berikut adalah representasi JSON dari postingan blog:
{
"id": 1001,
"title": "What is JSON?",
"author": {
"id": 1,
"name": "James Walker"
},
"tags": [
"api",
"json",
"programming"
],
"published": false,
"publishedTimestamp": null
}
Contoh ini menunjukkan semua tipe data JSON. Ini juga menggambarkan keringkasan data berformat JSON, salah satu karakteristik yang membuatnya begitu menarik untuk digunakan dalam API.
Dengan kata lain, ini adalah format pertukaran data ringan yang mudah dibaca dan ditulis oleh manusia, dan mudah diuraikan dan dibuat oleh mesin. JSON adalah format teks yang sepenuhnya independen terhadap bahasa, menjadikannya pilihan ideal untuk pertukaran data antar bahasa pemrograman yang berbeda.

Memahami metode permintaan POST
Permintaan POST adalah jenis metode permintaan HTTP yang digunakan untuk mengirim data ke server untuk membuat atau memperbarui sumber daya. Ini sering digunakan saat mengunggah file atau saat mengirimkan formulir web yang telah diisi. Metode permintaan POST meminta agar server web menerima data yang dilampirkan dalam badan pesan permintaan, kemungkinan besar untuk menyimpannya.
Format standar JSON untuk merepresentasikan objek dan data menjadikannya pilihan populer untuk mengirim data dalam permintaan POST. Dengan menggunakan JSON, pengembang dapat memastikan bahwa data yang dikirim ke server terorganisasi dengan baik dan mudah dipahami, sehingga meningkatkan efisiensi pembuatan dan pembaruan sumber daya.

Berbeda dengan metode permintaan HTTP GET, yang mengambil informasi dari server, metode permintaan POST meminta agar server web menerima data yang dilampirkan dalam badan pesan permintaan, kemungkinan besar untuk menyimpannya. Sejumlah data arbitrer dari jenis apa pun dapat dikirim ke server dalam badan pesan permintaan.

Berikut adalah contoh cara menggunakan pustaka requests
untuk mengirim permintaan HTTP POST:
import requests
url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
response = requests.post(url, data=data)
print(response.status_code)
print(response.content)
Dalam contoh ini, kita mengirim permintaan HTTP POST ke https://www.example.com/api
dengan payload JSON yang berisi nama pengguna dan kata sandi. Metode requests.post()
digunakan untuk mengirim permintaan, dan kode status respons serta konten dicetak ke konsol.
Cara Menggunakan Python Requests untuk Mengirim Data JSON dengan Metode POST?
Sekarang kita memiliki pemahaman dasar tentang apa itu Python Requests dan JSON, mari kita selami cara menggunakan Python Requests untuk mengirim data JSON dengan metode POST. Berikut adalah contoh cara melakukannya:
import requests
import json
url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
headers = {'Content-type': 'application/json'}
response = requests.post(url, data=json.dumps(data), headers=headers)
print(response.status_code)
print(response.content)
Dalam contoh ini, kita mengirim permintaan HTTP POST ke https://www.example.com/api
dengan payload JSON yang berisi nama pengguna dan kata sandi. Metode requests.post()
digunakan untuk mengirim permintaan, dan kode status respons serta konten dicetak ke konsol. Perhatikan bahwa kita menggunakan metode json.dumps()
untuk mengonversi kamus data
menjadi string JSON sebelum mengirimkannya dalam badan permintaan.
Anda dapat menginstal pustaka requests
menggunakan perintah berikut:
python -m pip install requests
Menangani Respons
Setelah mengirim permintaan POST, kita akan menerima respons dari server. Kita dapat menangani respons menggunakan objek response
yang kita buat sebelumnya. Berikut adalah contoh cara menangani respons:
import requests
url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
headers = {'Content-type': 'application/json'}
response = requests.post(url, json=data, headers=headers)
if response.status_code == 200:
print('Success!')
else:
print('An error occurred.')
Dalam contoh ini, kita memeriksa kode status respons untuk melihat apakah permintaan berhasil. Jika kode statusnya 200, kita akan mencetak "Success!". Jika tidak, kita akan mencetak "An error occurred.".
Menangani Kesalahan
Terkadang, segala sesuatunya tidak berjalan sesuai rencana. Jika terjadi kesalahan saat mengirim permintaan POST, kita ingin menanganinya dengan baik. Berikut adalah contoh cara menangani kesalahan:
import requests
url = 'https://www.example.com/api'
data = {'username': 'my_username', 'password': 'my_password'}
headers = {'Content-type': 'application/json'}
try:
response = requests.post(url, json=data, headers=headers)
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print(err)
Dalam contoh ini, kita menggunakan blok try
/except
untuk menangkap kesalahan apa pun yang mungkin terjadi saat mengirim permintaan POST. Jika terjadi kesalahan, kita akan mencetak pesan kesalahan.
Cara Mengirim Permintaan POST Python dengan Data JSON di Apidog?
Apidog adalah solusi pengujian yang kuat yang memberi pengembang pengalaman pengujian antarmuka yang lebih kuat. Fitur-fitur canggihnya seperti membuat kasus pengujian khusus, menghasilkan laporan, dan pengujian beban memberdayakan pengembang dengan fleksibilitas dan kemampuan yang lebih besar dalam alur kerja pengujian mereka. Dibandingkan dengan Postman, Apidog menonjol sebagai solusi pengujian yang lebih komprehensif dan kuat.
Untuk mengirim permintaan POST dengan data JSON di Apidog, ikuti langkah-langkah berikut:
Langkah 1: Buka Apidog dan buat permintaan baru.

Langkah 2: Klik tab Request dan pilih POST dari menu dropdown.

Langkah 3: Masukkan URL endpoint API yang ingin Anda uji, di bagian Headers, tambahkan header yang diperlukan. Di bagian Body, pilih JSON dari menu dropdown dan masukkan data JSON yang ingin Anda kirim dalam badan permintaan.

Langkah 4: Klik tombol Kirim untuk mengirim permintaan dan memeriksa respons.

Itu saja! Anda telah berhasil mengirim permintaan POST Python dengan data JSON di Apidog.
Kesimpulan
Dalam postingan blog ini, kita telah membahas cara menggunakan Python Requests untuk mengirim data JSON dengan metode POST. Kita telah membahas dasar-dasar mengirim permintaan POST, menangani respons, dan menangani kesalahan. Kami harap postingan blog ini bermanfaat bagi Anda, dan sekarang Anda dapat menggunakan Python Requests untuk mengirim data JSON dengan metode POST dengan mudah!
FAQ: Python Requests - Mengirim Data JSON
1. Apa perbedaan antara permintaan GET dan POST di Python Requests?
Permintaan GET digunakan untuk mengambil data dari server, sedangkan permintaan POST digunakan untuk mengirim data ke server untuk membuat atau memperbarui sumber daya. Di Python Requests, Anda menggunakan requests.get()
untuk permintaan GET dan requests.post()
untuk permintaan POST.
2. Bagaimana cara menyertakan header saat mengirim permintaan POST dengan data JSON?
Untuk menyertakan header dalam permintaan POST, Anda dapat menggunakan parameter headers
dalam metode requests.post()
. Misalnya, untuk menentukan tipe konten sebagai JSON:
headers = {'Content-Type': 'application/json'}
response = requests.post(url, json=data, headers=headers)
3. Mengapa saya harus menggunakan parameter json
alih-alih data
saat mengirim data JSON?
Saat Anda menggunakan parameter json
, Python Requests secara otomatis mengonversi kamus Python Anda menjadi string JSON dan menetapkan header Content-Type
yang benar (application/json
). Ini menghilangkan kebutuhan untuk menserialisasikan data secara manual menggunakan json.dumps()
.
Contohnya:
response = requests.post(url, json={'username': 'user1', 'password': 'password'})
4. Bagaimana cara menangani kode status non-200 dalam respons?
Untuk menangani kesalahan dalam respons HTTP, Anda dapat memeriksa kode status respons dan mengambil tindakan yang sesuai. Berikut adalah contohnya:
response = requests.post(url, json={'username': 'user1', 'password': 'password'})
if response.status_code == 200:
print("Request was successful")
else:
print(f"Failed with status code: {response.status_code}")
5. Apa yang harus saya lakukan jika server mengembalikan kesalahan saat mengirim permintaan?
Anda dapat menggunakan blok try/except
untuk menangkap potensi pengecualian saat membuat permintaan. Contohnya:
try:
response = requests.post(url, json={'username': 'user1', 'password': 'password'})
response.raise_for_status() # Akan memunculkan pengecualian untuk respons 4xx/5xx
except requests.exceptions.RequestException as e:
print(f"Error occurred: {e}")
6. Bagaimana cara mengirim data JSON dalam permintaan POST tanpa menggunakan parameter json
?
Jika Anda tidak ingin menggunakan parameter json
, Anda dapat menserialisasikan data Anda secara manual menggunakan metode json.dumps()
dan meneruskannya dalam parameter data
. Namun, pastikan untuk menetapkan header yang benar:
import json
headers = {'Content-Type': 'application/json'}
data = json.dumps({'username': 'user1', 'password': 'password'})
response = requests.post(url, data=data, headers=headers)
7. Bisakah saya menguji permintaan POST dengan data JSON di Apidog?
Ya, Anda dapat menguji permintaan POST dengan data JSON di Apidog. Cukup pilih metode POST, masukkan URL, atur tipe konten ke JSON di header, dan masukkan data JSON Anda di badan permintaan. Apidog juga memungkinkan Anda untuk memeriksa respons dan memvalidasinya secara efisien, menjadikannya alat yang hebat untuk pengujian API.
8. Bagaimana cara men-debug permintaan POST jika tidak berfungsi seperti yang diharapkan?
Untuk men-debug permintaan POST, periksa hal berikut:
- Kode status: Pastikan server merespons dengan kode status yang diharapkan (misalnya, 200 untuk keberhasilan).
- Konten respons: Lihat konten respons untuk mendapatkan detail lebih lanjut tentang apa yang salah.
- Header: Periksa kembali header permintaan (terutama
Content-Type
dan token otorisasi). - Format data: Verifikasi bahwa data JSON yang Anda kirimkan terbentuk dengan baik.
9. Apa saja kesalahan umum saat mengirim data JSON dengan Python Requests?
- JSON tidak valid: Jika JSON salah format, Anda akan mendapatkan kesalahan seperti
ValueError: Expecting value
. - Content-Type salah: Pastikan Anda menetapkan
Content-Type: application/json
di header jika Anda mengirim data JSON. - Kesalahan Koneksi: Jika URL atau server tidak dapat dijangkau, Anda akan menemukan
requests.exceptions.ConnectionError
.