Socket获取天气
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class TalkClient { public static void main(String[] args) { try{ //高德开发者 Socket socket=new Socket("restapi.amap.com",80); //由Socket对象得到输出流,并构造PrintWriter对象 PrintWriter os=new PrintWriter(socket.getOutputStream()); //下面的key是自己申请的 os.println("GET https://restapi.amap.com/v3/weather/weatherInfo?city=370883&key=。。。&output=xml"); os.flush(); //由Socket对象得到输入流,并构造相应的BufferedReader对象 BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), "UTF-8")); String line = null; while ((line = input.readLine()) != null) { System.out.println(line); } os.close(); //关闭Socket输出流 input.close(); //关闭Socket输入流 socket.close(); //关闭Socket }catch(Exception e){ e.printStackTrace();//出错,打印出错信息 } } }
输出
<?xml version="1.0" encoding="UTF-8"?> <response> <status>1</status> <count>1</count> <info>OK</info> <infocode>10000</infocode> <lives type="list"><live> <province>山东</province> <city>邹城市</city> <adcode>370883</adcode> <weather>晴</weather> <temperature>12</temperature> <winddirection>南</winddirection> <windpower>≤3</windpower> <humidity>62</humidity> <reporttime>2020-02-12 17:55:59</reporttime> </live></lives> </response>