七天學會 swift - 讀取網頁資料 Day5


以 GET 方式提交資料給網站

所謂的 GET 方式就是 cilent 端將要傳送的資料附在網址的後面,然後傳送給 web server,web server 再根據網址最後所附加的內容來得知 cilent 端送過來的資料。
例如,https://www.wibibi.com/info.php?tid=145 ,這樣的網址傳送到 server 端後,server 端的程式就可以取得 tid=145 這個參數值。

  • 步驟說明
    1. 建立 Single View App 專案
    2. 開啟 ViewController.swift,在 viewDidLoad() 中將一些參數傳送給 web server 去處理
      let url = URL(string: "https://www.wibibi.com/info.php?tid=145")
      do{
       //取得送出後資料的回傳值
       let html = try String(contentsOf: url!)
       print(html),
      }catch{
       print(error)
      }
      
    3. 執行

以 POST 方式提交資料給網站

相較於 GET 方式,POST 是將要傳送的資料方在資料傳送區,並不是放在網址的地方,這樣傳送資料就相對比 GET 來的安全許多,比較不容易讓其他人看到資料傳送的內容。

  • 步驟說明

    1. 開啟欲查詢的網址
    2. 右鍵開啟網頁原始碼,可以至 網路 -> XHR 得知網頁所要求的資料
    3. 開啟 ViewController.swift,在 viewDidLoad() 中設定一個 URL 要求,然後將要提交的資料放在這個要求中交給 URLSession 就可以了。

      let url = URL(string: "https://www.tdcc.com.tw/smWeb/QryStockAjax.do")   
       let headers = [
           "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
           "Accept": "application/json, text/javascript, */*; q=0.01",
           "Accept-Language": "zh-tw",
           "Accept-Encoding": "gzip, deflate, br",
           "Host": "www.tdcc.com.tw",
           "Origin": "https://www.tdcc.com.tw",
           "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.5 Safari/605.1.15",
           "Connection": "keep-alive",
           "Referer": "https://www.tdcc.com.tw/smWeb/QryStockAjax.do",
           "Content-Length": "22",
           "Cookie": "_ga=GA1.3.608656852.1582778538; _gat=1; _gid=GA1.3.93527523.1582778538; JSESSIONID=0000oXNOAad-635nOts9VJ73P3f:19tmdfnom",
           "X-Requested-With": "XMLHttpRequest",            
           "MIME類型": "application/x-www-form-urlencoded;charset=UTF-8",
           "scaDates": "20200221",
           "scaDate": "20200221",
           "SqlMethod": "StockNo",
           "StockNo": "2605",
           "StockName": "",
           "REQ_OPR": "SELECT",
           "clkStockNo": "2605",
           "clkStockName": "",
       ]       
       var request = URLRequest(url: url!, cachePolicy: .reloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 30)
       request.httpMethod = "POST"
       request.allHTTPHeaderFields = headers
       let config = URLSessionConfiguration.default
       let session = URLSession(configuration: config)
       let dataTask = session.dataTask(with: request){ (data, response, error) in
           if let data = data{
               let html = String(data: data, encoding: .utf8)
               print(html)
           }
       }
       dataTask.resume()
      
    4. 執行

#swift #iOS







你可能感興趣的文章

[ 筆記 ] DOM - 事件傳遞機制:捕獲與冒泡、事件代理

[ 筆記 ] DOM - 事件傳遞機制:捕獲與冒泡、事件代理

【隨堂筆記】基礎演算法概論

【隨堂筆記】基礎演算法概論

讀書筆記-React 啟動與運行: 前言

讀書筆記-React 啟動與運行: 前言






留言討論