


Mengapa kod saya tidak dapat mendapatkan data yang dikembalikan oleh API? Bagaimana menyelesaikan masalah ini?
Menyelesaikan masalah dan menyelesaikan masalah yang kod python tidak dapat memperoleh data yang dikembalikan oleh API
Artikel ini menganalisis kes kod python yang mengembalikan nilai kosong apabila memanggil API ip-api.com
menggunakan Perpustakaan requests
dan menyediakan penyelesaian.
Penerangan Masalah
Kod berikut cuba mendapatkan maklumat IP batch ip-api.com
menggunakan permintaan pos, tetapi sentiasa mengembalikan nilai null:
Import Rawak, Permintaan, JSON ip = [ "49.104.25.257", "39.115.131.116" ] API = "http://ip-api.com/batch?fields=58898?lang=zh_cn" tajuk = { "Agen Pengguna": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Applewebkit/537.36 (KHTML, seperti Gecko) Chrome/119.0.0.0 Safari/537.36 EDG/119.0.0", "Kandungan-jenis": "Aplikasi/JSON" } ip = json.dumps (ip, sure_ascii = false, indent = 2) Cetak (IP) resp = requests.post (url = api, data = ip, headers = headers) cetak (resp.status_code) cetak (resp.text) resp.close ()
API ini adalah versi percuma dengan had 45 permintaan seminit, menggunakan permintaan pos, fields=58898
digunakan untuk menentukan medan balik. Walaupun tidak ada masalah dalam menanyakan IP secara langsung di laman web API, kod tersebut sentiasa mengembalikan nilai null dan Perpustakaan requests
tidak melaporkan ralat.
Analisis dan penyelesaian masalah
Setelah memeriksa dengan teliti kod dan dokumentasi API, saya mendapati bahawa masalahnya adalah tetapan parameter pertanyaan URL. Dalam kod asal, URL adalah:
API = "http://ip-api.com/batch?fields=58898?lang=zh_cn"
&
Sambungan harus digunakan di antara parameter pertanyaan berganda, dan bukannya penggunaan berterusan ?
URL yang betul mestilah:
API = "http://ip-api.com/batch?fields=58898&lang=zh_cn"
Di samping itu, adalah disyorkan untuk menetapkan parameter lang
ke zh_CN
untuk memastikan data Cina dikembalikan. Pada masa yang sama, User-Agent
dan content-type
dalam header HTTP harus menggunakan kaedah penamaan standard, dengan inisial yang dipermodalkan.
Inilah kod lengkap yang diubah suai:
permintaan import Import JSON ip = [ "49.104.25.257", "39.115.131.116" ] API = "http://ip-api.com/batch?fields=58898&lang=zh_cn" tajuk = { "Agen Pengguna": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Applewebkit/537.36 (KHTML, seperti Gecko) Chrome/119.0.0.0 Safari/537.36 EDG/119.0.0", "Kandungan-jenis": "Aplikasi/JSON" } ip = json.dumps (ip, sure_ascii = false, indent = 2) Cetak (IP) resp = requests.post (url = api, data = ip, headers = headers) cetak (resp.status_code) cetak (resp.text) resp.close ()
Dengan mengubah suai header URL dan HTTP, data pulangan API dapat diperolehi dengan jayanya. Contoh ini menggambarkan kegagalan potensi kesilapan sintaks halus dalam panggilan API, menekankan pentingnya URL dan parameter pemeriksaan dua kali.
Atas ialah kandungan terperinci Mengapa kod saya tidak dapat mendapatkan data yang dikembalikan oleh API? Bagaimana menyelesaikan masalah ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Adakah anda ingin tahu cara memaparkan kategori kanak -kanak di halaman arkib kategori induk? Apabila anda menyesuaikan halaman arkib klasifikasi, anda mungkin perlu melakukan ini untuk menjadikannya lebih berguna kepada pelawat anda. Dalam artikel ini, kami akan menunjukkan kepada anda bagaimana untuk memaparkan kategori kanak -kanak dengan mudah di halaman arkib kategori induk. Mengapa subkategori muncul di halaman arkib kategori induk? Dengan memaparkan semua kategori kanak -kanak di halaman arkib kategori induk, anda boleh menjadikannya kurang generik dan lebih berguna kepada pelawat. Sebagai contoh, jika anda menjalankan blog WordPress mengenai buku dan mempunyai taksonomi yang disebut "tema", anda boleh menambah sub-taksonomi seperti "novel", "bukan fiksyen" supaya pembaca anda dapat

Faktor kenaikan harga mata wang maya termasuk: 1. Peningkatan permintaan pasaran, 2. Menurunkan bekalan, 3. Berita positif yang dirangsang, 4. Sentimen pasaran optimis, 5. Persekitaran makroekonomi; Faktor penurunan termasuk: 1. Mengurangkan permintaan pasaran, 2. Peningkatan bekalan, 3.

Memahami rawak kebergantungan bulat dalam permulaan projek musim bunga. Semasa membangunkan projek musim bunga, anda mungkin menghadapi rawak yang disebabkan oleh kebergantungan bulat pada permulaan projek ...

Perbincangan mengenai struktur hierarki dalam projek Python Dalam proses pembelajaran Python, banyak pemula akan bersentuhan dengan beberapa projek sumber terbuka, terutama projek menggunakan kerangka Django ...

Memilih Python atau C bergantung kepada keperluan projek: 1) Jika anda memerlukan pembangunan pesat, pemprosesan data dan reka bentuk prototaip, pilih Python; 2) Jika anda memerlukan prestasi tinggi, latensi rendah dan kawalan perkakasan yang rapat, pilih C.

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

Kenapa nilai pulangan kosong apabila menggunakan redistemplate untuk pertanyaan batch? Apabila menggunakan Redistemplate untuk operasi pertanyaan batch, anda mungkin menghadapi hasil yang dikembalikan ...

Python sesuai untuk pemula dan sains data, dan C sesuai untuk pengaturcaraan sistem dan pembangunan permainan. 1. Python adalah mudah dan mudah digunakan, sesuai untuk sains data dan pembangunan web. 2.C menyediakan prestasi dan kawalan yang tinggi, sesuai untuk pembangunan permainan dan pengaturcaraan sistem. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.
