Bagaimana untuk menggunakan kod Java untuk mendapatkan maklumat bandar melalui alamat IP pada Peta Baidu?
Ikhtisar:
Peta Baidu menyediakan satu siri antara muka API, membolehkan pembangun mendapatkan maklumat lokasi geografi yang sepadan berdasarkan alamat IP. Ini sangat berguna untuk aplikasi yang memerlukan paparan diperibadikan berdasarkan alamat IP pengguna. Artikel ini akan memperkenalkan cara menggunakan kod Java untuk mencapai fungsi mendapatkan maklumat bandar melalui alamat IP.
Langkah:
import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; public class BaiduMapAPI { public static void main(String[] args) { String ip = "IP地址"; // 需要替换成要查询的IP地址 try { String ak = "你的AK"; // 需要替换成你的百度地图访问密钥 CloseableHttpClient client = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(String.format("https://api.map.baidu.com/location/ip?ip=%s&ak=%s", ip, ak)); CloseableHttpResponse response = client.execute(httpGet); HttpEntity entity = response.getEntity(); if (entity != null) { InputStream inputStream = entity.getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); StringBuilder stringBuilder = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { stringBuilder.append(line); } JSONObject jsonObject = new JSONObject(stringBuilder.toString()); String city = jsonObject.getJSONObject("content").getString("address_detail").getString("city"); System.out.println("城市:" + city); } response.close(); client.close(); } catch (Exception e) { e.printStackTrace(); } } }
Arahan:
Dalam kod di atas, kami mula-mula membuat permintaan HTTP dengan mencipta contoh CloseableHttpClient
dan nyatakan URL yang akan diminta. Dalam URL ini, kami menggunakan parameter ip
untuk menentukan alamat IP yang hendak ditanya dan parameter ak
ialah kunci pembangun Peta Baidu. CloseableHttpClient
的实例来进行HTTP请求,并指定需要请求的URL。在这个URL中,我们使用了ip
参数来指定需要查询的IP地址,ak
参数为百度地图开发者密钥。
接下来,我们发送HTTP请求并获取响应的实体。如果响应实体非空,则我们将其封装在InputStream
和BufferedReader
中,并逐行读取返回的JSON响应内容。我们使用JSONObject
InputStream
dan BufferedReader
dan membaca kandungan respons JSON yang dikembalikan baris demi baris. Kami menggunakan kelas JSONObject
untuk menghuraikan respons JSON, mengekstrak maklumat bandar daripadanya dan kemudian mencetaknya. Akhir sekali, kami menutup respons HTTP dan klien HTTP.
Ringkasan:
Atas ialah kandungan terperinci Bagaimana untuk menggunakan kod Java untuk mendapatkan maklumat bandar melalui alamat IP pada Peta Baidu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!