📜  94609 是哪个城市 - Java (1)

📅  最后修改于: 2023-12-03 14:59:06.936000             🧑  作者: Mango

查询邮编对应城市的Java程序

有时候我们会知道一个邮编,但不知道它是哪个城市,本文介绍如何用Java编写一个程序来查询邮编对应城市。我们的程序将使用第三方API提供的数据进行查询。

API介绍

我们将使用 Zippopotamus API 这个API来进行邮编查询。该API是一个免费的REST API,支持多种编程语言。对于每个请求,它会返回一个JSON格式的响应,其中包含相关城市的信息。

代码实现

我们可以使用Java的第三方网络请求库 OkHttp 来发送HTTP请求并获取API响应。

  1. 首先需要引入OkHttp依赖,在build.gradle中添加:

    implementation 'com.squareup.okhttp3:okhttp:4.9.1'
    
  2. 实现查询方法:

    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. 测试代码:

    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();
            }
        }
    }
    
Markdown格式返回的代码片段
# 查询邮编对应城市的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程序。