用java实现使用socket编程获取网络上天气预报
时间: 2024-06-08 18:05:39 浏览: 170
java获取天气预报
5星 · 资源好评率100%
要使用 Socket 编程获取网络上的天气预报,需要先确定天气预报服务端的地址和端口号。常用的天气预报服务有中国气象局的公共天气预报服务、百度天气 API、和风天气 API 等。
以下是使用中国气象局的公共天气预报服务实现获取天气预报的 Java 代码示例:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class WeatherClient {
public static void main(String[] args) throws IOException {
// 连接中国气象局公共天气预报服务
Socket socket = new Socket("www.nmc.cn", 80);
// 构造 HTTP 请求消息
String request = "GET /f/rest/province HTTP/1.1\r\n" +
"Host: www.nmc.cn\r\n" +
"Connection: close\r\n\r\n";
// 发送 HTTP 请求消息
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
out.print(request);
out.flush();
// 读取服务器响应消息
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
// 关闭连接
socket.close();
}
}
```
以上代码通过 Socket 连接中国气象局公共天气预报服务,向服务端发送 HTTP 请求消息,并读取服务端响应消息。其中,请求消息中的路径 `/f/rest/province` 是获取所有省份的天气预报信息,可以替换为其他路径来获取不同的天气预报信息。
阅读全文