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>

 

posted @ 2020-02-10 13:02  摘珰  阅读(586)  评论(0编辑  收藏  举报