flutter中如何開(kāi)啟一個(gè)https的服務(wù)

使用bindSecure 去創(chuàng)建一個(gè) HTTPS server.

服務(wù)將會(huì)提供一個(gè)證書(shū)給客戶(hù)端。這個(gè)證書(shū)鏈和私鑰在 SecurityContext 里面設(shè)置,這個(gè)對(duì)象通過(guò) bindSecure方法進(jìn)行調(diào)用.

import 'dart:io';
import "dart:isolate";

main() {
  SecurityContext context = new SecurityContext();
  var chain =
      Platform.script.resolve('certificates/server_chain.pem')
      .toFilePath();
  var key =
      Platform.script.resolve('certificates/server_key.pem')
      .toFilePath();
  context.useCertificateChain(chain);
  context.usePrivateKey(key, password: 'dartdart');

  HttpServer
      .bindSecure(InternetAddress.anyIPv6,
                  443,
                  context)
      .then((server) {
        server.listen((HttpRequest request) {
          request.response.write('Hello, world!');
          request.response.close();
        });
      });
}

這里證書(shū)和key都是pem文件,他們可以通過(guò)OpenSSL工具進(jìn)行生成。
原文鏈接:https://api.dart.dev/be/180499/dart-io/HttpServer-class.html#id_bindSecure

閑話(huà):好久沒(méi)寫(xiě)新文章了,最近項(xiàng)目中用到需要在手機(jī)上搭一個(gè)小服務(wù)器的功能,且這個(gè)服務(wù)器要支持https,百度了好久也沒(méi)有找到能直接有幫助的文章,特此在這記錄一下,親測(cè)可用。普通的不支持https的代碼就很簡(jiǎn)單了,也在上面的那個(gè)鏈接里。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • #簡(jiǎn)介 深入學(xué)習(xí)Flask作為RestFul服務(wù)端的架構(gòu)思路。了解Flask設(shè)計(jì)哲學(xué)、應(yīng)用場(chǎng)景。包含從開(kāi)發(fā)環(huán)境搭建...
    愛(ài)睡覺(jué)的樹(shù)閱讀 2,559評(píng)論 0 1
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,864評(píng)論 2 59
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂(lè)有人憂(yōu)愁,有人驚喜有人失落,有的覺(jué)得收獲滿(mǎn)滿(mǎn)有...
    陌忘宇閱讀 8,592評(píng)論 28 53
  • 信任包括信任自己和信任他人 很多時(shí)候,很多事情,失敗、遺憾、錯(cuò)過(guò),源于不自信,不信任他人 覺(jué)得自己做不成,別人做不...
    吳氵晃閱讀 6,222評(píng)論 4 8
  • 步驟:發(fā)微博01-導(dǎo)航欄內(nèi)容 -> 發(fā)微博02-自定義TextView -> 發(fā)微博03-完善TextView和...
    dibadalu閱讀 3,167評(píng)論 1 3