📅  最后修改于: 2023-12-03 14:59:06.936000             🧑  作者: Mango
有时候我们会知道一个邮编,但不知道它是哪个城市,本文介绍如何用Java编写一个程序来查询邮编对应城市。我们的程序将使用第三方API提供的数据进行查询。
我们将使用 Zippopotamus API 这个API来进行邮编查询。该API是一个免费的REST API,支持多种编程语言。对于每个请求,它会返回一个JSON格式的响应,其中包含相关城市的信息。
我们可以使用Java的第三方网络请求库 OkHttp 来发送HTTP请求并获取API响应。
首先需要引入OkHttp依赖,在build.gradle
中添加:
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
实现查询方法:
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.json.JSONObject;
import java.io.IOException;
public class ZipCodeLookup {
public static String getCityByZipCode(String zipCode) throws IOException {
OkHttpClient client = new OkHttpClient();
String url = "https://api.zippopotam.us/us/" + zipCode;
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
JSONObject jsonObject = new JSONObject(response.body().string());
String city = jsonObject.getJSONObject("places").getJSONObject("0").getString("place name");
return city;
}
}
测试代码:
import java.io.IOException;
public class Main {
public static void main(String[] args) {
String zipCode = "94609";
try {
String city = ZipCodeLookup.getCityByZipCode(zipCode);
System.out.println("The city for zip code " + zipCode + " is " + city);
} catch (IOException e) {
e.printStackTrace();
}
}
}
# 查询邮编对应城市的Java程序
有时候我们会知道一个邮编,但不知道它是哪个城市,本文介绍如何用Java编写一个程序来查询邮编对应城市。我们的程序将使用第三方API提供的数据进行查询。
## API介绍
我们将使用 [Zippopotamus API](https://www.zippopotam.us/) 这个API来进行邮编查询。该API是一个免费的REST API,支持多种编程语言。对于每个请求,它会返回一个JSON格式的响应,其中包含相关城市的信息。
## 代码实现
我们可以使用Java的第三方网络请求库 [OkHttp](https://square.github.io/okhttp/) 来发送HTTP请求并获取API响应。
1. 首先需要引入OkHttp依赖,在`build.gradle`中添加:
```
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
```
2. 实现查询方法:
```java
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.json.JSONObject;
import java.io.IOException;
public class ZipCodeLookup {
public static String getCityByZipCode(String zipCode) throws IOException {
OkHttpClient client = new OkHttpClient();
String url = "https://api.zippopotam.us/us/" + zipCode;
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
JSONObject jsonObject = new JSONObject(response.body().string());
String city = jsonObject.getJSONObject("places").getJSONObject("0").getString("place name");
return city;
}
}
```
3. 测试代码:
```java
import java.io.IOException;
public class Main {
public static void main(String[] args) {
String zipCode = "94609";
try {
String city = ZipCodeLookup.getCityByZipCode(zipCode);
System.out.println("The city for zip code " + zipCode + " is " + city);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
## 运行结果
The city for zip code 94609 is Oakland
现在我们已成功地实现了邮编查询城市的Java程序。