Batas Google Geocoding API terlampaui pada jaringan seluler, tetapi tidak pada wifi

Saya menggunakan SVGeocoder untuk mengakses layanan geocoding Google di iOS, dan saya mengalami masalah yang sangat aneh . Geocoding berfungsi dengan sempurna saat pengujian pada simulator atau pada ponsel yang terhubung ke wifi, tetapi setelah ponsel dialihkan ke 3G/4G, saya mulai mendapatkan kesalahan "LIMIT EXCEEDED". Saya hanya membuat beberapa lusin permintaan melalui 3G/4G, tidak mendekati batas 2500 permintaan. Apa yang terjadi di sini?

Terima kasih sebelumnya!

PEMBARUAN: Saya akhirnya memecahkan masalah ini dengan menunda waktu antara setiap permintaan geocode. Saya tahu bahwa mengirimkan permintaan terlalu cepat dapat menjadi masalah, namun saya tidak menyadari bahwa permintaan tersebut menghasilkan pesan QUERY_LIMIT_EXCEEDED yang sama sampai saya membaca ini.

Namun, ini masih belum menjawab pertanyaan mengapa ini berfungsi pada wifi dan bukan pada 3G/4G.


person bmat    schedule 03.10.2012    source sumber
comment
Anda harus memasukkan pembaruan Anda ke dalam kotak jawaban di bawah dan menandainya sebagai jawabannya. penemuan yang bagus!   -  person owen gerig    schedule 04.10.2012
comment
Saya ragu-ragu untuk memilih jawaban yang benar sampai saya mengetahui mengapa penundaan itu berhasil. Saya khawatir saya mungkin baru saja membalut masalah ini.   -  person bmat    schedule 04.10.2012
comment
Saya kesulitan memecahkan masalah yang persis sama. Apakah Anda menyelesaikannya? apa solusinya?   -  person LKM    schedule 16.03.2015
comment
@LKM Saya menambahkan penundaan minimum antara panggilan ke API. Google akan mengirimkan respons kesalahan jika Anda mengirimkan permintaan terlalu cepat.   -  person bmat    schedule 16.03.2015
comment
@bmat terima kasih atas jawaban tulus Anda, saya tidak mencobanya. tapi menurut saya solusi Anda tidak resmi. Apakah itu reaksi yang paling tepat? Atau apakah kita perlu menambahkan Google GeoCoding API di konsol pengembang Google?   -  person LKM    schedule 16.03.2015
comment
Dan permisi, Bolehkah saya bertanya apa yang dimaksud dengan penundaan minimum?   -  person LKM    schedule 16.03.2015


Jawaban (1)


Ini berfungsi di Wifi karena Anda kemudian menggunakan alamat IP dan penyedia Anda sendiri. Di jaringan seluler, Anda menjalankan permintaan melalui penyedia Anda, yang biasanya menggunakan proxy keluar. Jadi saat Google menerima permintaan tersebut, Google melihat IP proxy penyedia Anda untuk semua pelanggannya, bukan IP Anda sendiri, tidak seperti dalam kasus wifi.

Setidaknya itulah kesimpulan yang saya dapatkan ketika saya mendapat masalah serupa juga, berdasarkan pengalaman dan pengambilan paket.

  • Artinya, setiap permintaan yang dijalankan dari jaringan seluler yang dijalankan oleh penyedia Anda tampaknya berasal dari IP yang sama untuk Google, sehingga meningkatkan jumlah permintaan untuk IP tersebut, setidaknya dari sudut pandang server Google. Jadi, jika Anda, tetangga Anda, dan jutaan orang lain yang menggunakan penyedia yang sama mengirimkan permintaan ke Google, dan penyedia ini menggunakan proxy keluar yang sama, Google mungkin akan melihat IP yang sama untuk jutaan orang/permintaan tersebut dan akan mempertimbangkannya. batas kuota yang ingin dicapai.

  • Jika Anda menjalankan permintaan melalui jaringan wifi, Anda tidak akan melalui proxy keluar penyedia jaringan seluler Anda dan akan memiliki IP keluar Anda sendiri, dan akan dapat melakukan lebih banyak permintaan sebelum melihat kesalahan "LIMIT EXCEEDED", karena hanya permintaan Anda sendiri dihitung.

Saya percaya bahwa pada kenyataannya hal itu sedikit lebih rumit: penyedia Anda mungkin memiliki beberapa proxy keluar dan menggunakan penyeimbangan beban untuk mengirimkan permintaan pelanggan kepada mereka, Google mungkin memiliki database yang mengetahui proxy penyedia CN utama dan menyesuaikannya batas kuota yang sesuai, dll… tetapi Anda mengerti idenya.

person AliSoftware    schedule 03.10.2012
comment
Inilah yang saya pikirkan pada awalnya, tetapi masalahnya hilang ketika saya menambahkan jeda setengah detik di antara setiap permintaan. Saya bertanya-tanya apakah mungkin ada lebih banyak latensi melalui wifi karena alasan tertentu, dan ini menambah penundaan yang cukup antar permintaan untuk mencegah Google memblokir akses. Namun, tampaknya tidak mungkin latensi pada jaringan seluler akan berkurang... - person bmat; 04.10.2012