利用API實現獲取城市的天氣預報
阿新 • • 發佈:2021-01-09
利用API實現獲取城市的天氣預報
一、網址的組成
協議://域名:埠號/虛擬路徑?引數列表#錨點
協議: 用於計算機與計算機之間交流的協議,用於傳輸速率,傳輸編碼,出錯的控制等。
常用協議:
http:超文字傳輸協議,預設埠號:80
https:安全超文字傳輸協議,預設埠號:443
域名:ip地址的別名。ip地址是計算機在網際網路中的唯一表示,192.168.1.1
埠號:範圍:0-65535,其中0~1023有特殊含義。
虛擬路徑:通過路徑的方式,來管理伺服器中的檔案資源。
引數列表:向伺服器傳送的資料,每一個引數都是一個鍵值對,鍵和值之間通過=號連線,多個鍵值對之間通過&分割。
二、獲取城市的天氣預報資訊
package weather;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.Scanner;
public class test {
public static void main(String args[]) throws Exception
{
String wea="";
Scanner reader=new Scanner(System.in);
System.out.println("請輸入要查詢天氣的城市:");
wea=reader.next();
String weather=URLEncoder.encode(wea+"天氣","UTF-8");
//1. 先準備一個URL類的物件 ur1
URL url = new URL("https://api.jisuapi.com/iqa/query?appkey=62958a3a6ef3c56d&question=" +wea);
//2. 開啟伺服器連線,得到連線物件 conn
URLConnection conn = url.openConnection();
//3. 獲取載入資料的位元組輸入流 is
InputStream is = conn.getInputStream();
//4. 將is裝飾為能一次讀取一行的字元輸入流 br
BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
//5. 載入一行資料
String text = br.readLine();
//6. 顯示
System.out.println(text);
//7. 釋放資源
br.close();
}
}
智慧機器人API伺服器地址
https://api.jisuapi.com/iqa/query
引數列表
appkey(祕鑰):62958a3a6ef3c56d
question:與智慧機器人的聊天內容