用Java基于socket实现获取天气信息
时间: 2024-05-03 13:22:38 浏览: 11
以下是基于Java Socket获取天气信息的代码示例:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
public class WeatherClient {
public static void main(String[] args) {
try {
// 创建Socket对象,连接到天气查询服务器
Socket socket = new Socket("tianqiapi.com", 80);
// 构建HTTP请求
String request = "GET /api?version=v6&appid=your_appid&appsecret=your_appsecret&city=北京 HTTP/1.1\r\n";
request += "Host: tianqiapi.com\r\n";
request += "\r\n";
// 发送HTTP请求
OutputStreamWriter writer = new OutputStreamWriter(socket.getOutputStream());
writer.write(request);
writer.flush();
// 读取服务器响应
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 关闭Socket连接
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
其中,需要替换`your_appid`和`your_appsecret`为自己申请的天气查询API的Appid和Appsecret。另外,也需要替换`city`参数为需要查询天气的城市名称。执行该程序,即可在控制台输出天气信息。