<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## Socket 我們之前介紹的Http協議和WebSocket協議都屬于應用層協議,除了它們,應用層協議還有很多如:SMTP、FTP等,它們都是通過Socket實現的。其實,操作系統中提供的原生網絡請求API是標準的,在C語言的Socket庫中,它主要提供了端到端建立鏈接和發送數據的基礎API,而高級編程語言中的Socket庫其實都是對操作系統的socket API的一個封裝。所以,如果我們需要自定義協議或者想直接來控制管理網絡鏈接、又或者我們覺得自帶的HttpClient不好用想重新實現一個,這時我們就需要使用Socket。Flutter的Socket API在dart io包中,下面我們看一個使用Socket實現簡單http請求的示例,以請求百度首頁為例: ``` _request() async{ //建立連接 var socket=await Socket.connect("baidu.com", 80); //根據http協議,發送請求頭 socket.writeln("GET / HTTP/1.1"); socket.writeln("Host:baidu.com"); socket.writeln("Connection:close"); socket.writeln(); await socket.flush(); //發送 //讀取返回內容 _response =await socket.transform(utf8.decoder).join(); await socket.close(); } ``` 可以看到,使用Socket需要我們自己實現Http協議細節,本例只是一個簡單示例,沒有處理重定向、cookie等。本示例完整代碼參考示例demo,運行后如下: ![](https://box.kancloud.cn/f480cac64d5ddbc02cc1a052233c5e80_360x583.png) 可以看到響應內容分兩個部分,第一部分是響應頭,第二部分是響應體,服務端可以根據請求信息動態來輸出響應體。由于本示例請求頭比較簡單,所以響應體和瀏覽器中訪問的會有差別,讀者可以補充一些請求頭(如user-agent)來看看輸出的變化。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看