Saya memiliki panggilan cURL yang saya gunakan di PHP:
curl -i -H 'Terima: application / xml' -u login: key " https://app.streamsend.com/emails "
Saya membutuhkan cara untuk melakukan hal yang sama dengan Python. Apakah ada alternatif untuk cURL dengan Python. Saya tahu tentang urllib tapi saya Python noob dan tidak tahu cara menggunakannya.
requests
dengan python (tersedia untuk diinstal melalui easy_install atau pip di PyPi). Nama / URL sedikit membingungkan - pada saya pertama hampir pikir ini adalah permintaan wishlist untuk yang lebih baikurllib2
, bukanrequests
yang sangat intuitif mudah digunakan perpustakaan pythonicsudo easy_install requests
atausudo pip install requests
.Jawaban:
Panggilan cURL Anda menggunakan urllib2 sebagai gantinya. Sepenuhnya belum teruji.
sumber
Anda dapat menggunakan Permintaan HTTP yang dijelaskan dalam panduan pengguna Permintaan: HTTP untuk Manusia .
sumber
Berikut adalah contoh sederhana menggunakan urllib2 yang melakukan otentikasi dasar terhadap API GitHub.
Selanjutnya jika Anda membungkus ini dalam skrip dan menjalankannya dari terminal, Anda dapat menyalurkan string respons ke 'mjson.tool' untuk mengaktifkan pencetakan cantik.
Satu hal terakhir yang perlu diperhatikan, urllib2 hanya mendukung permintaan GET & POST.
Jika Anda perlu menggunakan kata kerja HTTP lain seperti DELETE, PUT, dll, Anda mungkin ingin melihat PYCURL
sumber
Jika Anda menggunakan perintah untuk memanggil curl seperti itu, Anda dapat melakukan hal yang sama dengan Python
subprocess
. Contoh:Atau Anda dapat mencoba PycURL jika Anda ingin menjadikannya sebagai api yang lebih terstruktur seperti yang dimiliki PHP.
sumber
import subprocess
? Lingkungan repl python sama seperti file python, Anda harus mengimpor modul lainnya.Ini yang paling sederhana yang bisa saya dapatkan.
sumber
urllib2
terlalu rumit.Beberapa contoh, bagaimana menggunakan urllib untuk hal-hal itu, dengan beberapa sintaks gula. Saya tahu tentang permintaan dan pustaka lain, tetapi urllib adalah lib standar untuk python dan tidak memerlukan apa pun untuk dipasang secara terpisah.
Kompatibel dengan Python 2/3.
Fungsi tidak lengkap dan mungkin tidak ideal, tetapi menunjukkan representasi dan konsep dasar yang akan digunakan. Hal-hal tambahan dapat ditambahkan atau diubah sesuai selera.
Pembaruan 12/08
Ini adalah tautan GitHub ke sumber yang diperbarui secara langsung. Saat ini mendukung:
otorisasi
CRUD kompatibel
deteksi charset otomatis
deteksi pengkodean otomatis (kompresi)
sumber
Jika menjalankan semua hal di atas dari baris perintah yang Anda cari, maka saya akan merekomendasikan HTTPie . Ini adalah alternatif CURL yang fantastis dan sangat mudah dan nyaman untuk digunakan (dan disesuaikan).
Berikut ini adalah deskripsi (ringkas dan tepat) dari GitHub;
Dokumentasi seputar otentikasi harus memberi Anda petunjuk yang cukup untuk menyelesaikan masalah Anda. Tentu saja, semua jawaban di atas juga akurat, dan memberikan cara berbeda untuk menyelesaikan tugas yang sama.
Supaya Anda TIDAK perlu beralih dari Stack Overflow, inilah yang ditawarkan secara singkat.
sumber