Flutter for OpenHarmony: Flutter 三方库 http_multi_server 在鸿蒙上同时开启多地址 HTTP 服务(局域网协作神器)

Flutter for OpenHarmony: Flutter 三方库 http_multi_server 在鸿蒙上同时开启多地址 HTTP 服务(局域网协作神器)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net

在这里插入图片描述

前言

在进行 OpenHarmony 应用开发时,有时我们需要在 App 内部启动一个本地服务器,例如:

  • 为内嵌的 Webview 提供本地资源访问。
  • 在局域网内进行设备间的数据同步(如投屏、文件传输)。
  • 进行自动化集成测试。

通常的 HttpServer.bind 只能绑定一个地址(要么是 localhost,要么是具体的 IP)。而 http_multi_server 允许你一次性绑定多个地址,让你的鸿蒙 App 同时在本地回环和局域网 IP 上提供服务。

一、核心原理解析

它实际上是一个 HttpServer 的聚合器。它通过同时启动多个底层的 Dart HttpServer 实例,并将它们分发的请求流(Request Stream)进行合并。

鸿蒙 Flutter App

HttpMultiServer

HttpServer (localhost:8080)

HttpServer (192.168.1.10:8080)

HttpServer (::1:8080)

统一的 HttpRequest 流

业务处理逻辑 (如 shelf)

二、核心 API 实战

2.1 绑定所有可用地址

这是最通用的用法,会自动绑定 IPv4 和 IPv6 的所有可用环回或全局地址。

import'package:http_multi_server/http_multi_server.dart';voidstartServer()async{// 💡 在 8080 端口绑定所有可用地址final server =awaitHttpMultiServer.bind('any',8080);print('服务器已启动,正在监听:${server.address}'); server.listen((request){ request.response ..write('来自鸿蒙本地服务器的消息')..close();});}
在这里插入图片描述


在这里插入图片描述

2.2 绑定特定列表

final server =awaitHttpMultiServer.bind([InternetAddress.loopbackIPv4,'192.168.31.100',// 💡 鸿蒙真机的局域网 IP],8081);
在这里插入图片描述


在这里插入图片描述

2.3 获取实际监听地址

由于是多地址绑定,你可以通过属性查看具体详情。

print('连接地址列表: ${server.connections}');
在这里插入图片描述


在这里插入图片描述

三、OpenHarmony 平台适配

3.1 端口占用处理

在鸿蒙设备上启动服务器前,请务必检查端口是否被系统或其他应用占用。建议使用随机端口(端口号设为 0)。

3.2 局域网访问权限

💡 注意:如果希望局域网内的其他设备(如 PC 浏览器)访问鸿蒙手机上的该服务,除了 ohos.permission.INTERNET,通常还需要确保手机和电脑在同一个 WiFi 下,且关闭了 AP 隔离。

3.3 性能与能耗建议

在鸿蒙系统中,后台运行的 HTTP 服务可能会被系统挂起。如果用于长时间的文件传输,建议配合鸿蒙的“持续任务”申请相关的保活权限。

四、完整实战示例:鸿蒙企业级多端口分发中心

本示例展示了如何结合 shelf 框架,在鸿蒙设备上构建一个结构化的多址 HTTP 服务。

import'package:http_multi_server/http_multi_server.dart';import'package:shelf/shelf.dart';import'package:shelf/shelf_io.dart'as shelf_io;voidsetupOhosService()async{// 1. 💡 绑定所有地址 (any) 在 9000 端口final multiServer =awaitHttpMultiServer.bind('any',9000);// 2. 💡 路由处理逻辑 (包含路径过滤与 HTML 返回)Response_handler(Request request){// 过滤浏览器自动发起的图标请求if(request.url.path =='favicon.ico')returnResponse.notFound(null);returnResponse.ok('<h1>🚀 鸿蒙企业中心</h1><p>已成功处理来自 ${request.url.path} 的请求</p>', headers:{'content-type':'text/html; charset=utf-8'},);}// 3. 💡 集成 Shelf 管道与多址监听器var pipeline =constPipeline().addMiddleware(logRequests()).addHandler(_handler);// 💡 将 multiServer 实例传给 shelf_io 进行分发 shelf_io.serveRequests(multiServer, pipeline);print("✅ 服务已上线: http://localhost:9000");}
在这里插入图片描述


在这里插入图片描述

五、总结

http_multi_server 为 OpenHarmony 开发者处理复杂的网络拓扑提供了极大的便利。它屏蔽了 IPv4/IPv6 以及不同网络接口的底层差异,让你能通过同一套逻辑实现“内外网同时监听”。无论是做本地调试工具还是跨设备分发功能,它都是构建鸿蒙嵌入式服务的标准底板。

Read more

【超详细】Python FastAPI 入门:写给新手的“保姆级”教程

【超详细】Python FastAPI 入门:写给新手的“保姆级”教程(2025–2026 最新版) 这篇教程的目标是: 零基础 → 能独立写出生产级别的 RESTful API 预计认真跟着做完前 80%,你大概需要 3–10 天(每天 2–4 小时)。 目录(建议按顺序阅读) 1. 为什么选择 FastAPI(而不是 Flask / Django) 2. 环境准备(最稳的几种方式) 3. 第一个 FastAPI 程序(Hello World) 4. 核心概念速览(5 分钟建立大局观) 5. 路径参数、查询参数、请求体(

By Ne0inhk
【超详细】Python FastAPI 入门:写给新手的“保姆级”教程

【超详细】Python FastAPI 入门:写给新手的“保姆级”教程

前言  作为一名大学生,最近在做 Python Web 开发时发现了一个“宝藏”框架——FastAPI。 以前学 Django 光配置就头大,学 Flask 又不知道怎么写规范。直到遇到了 FastAPI,我才体会到什么叫“写代码像呼吸一样自然”。 这篇文章不讲复杂的原理,只讲最基础、最实用的操作,带你从 0 到 1 跑通第一个 API 接口! 一、FastAPI 是什么 在 Python 的世界里,做网站后台(Web 开发)主要有三巨头: 1. Django:老大哥,功能全但笨重,像一辆重型卡车。 2. Flask:二哥,轻便灵活但插件多,像一辆自行组装的赛车。 3.

By Ne0inhk

通过python API来调用扣子coze的工作流

通过 Python 调用**扣子(Coze)**的工作流(Workflow),目前最推荐的方式是使用官方提供的 cozepy SDK(Python SDK)。这是字节跳动官方维护的包,支持完整的 Coze Open API,包括直接执行工作流(非流式/流式)、带文件上传、恢复中断等功能。 1. 准备工作(必须先完成) 1. 登录扣子平台:https://www.coze.cn 或 https://www.coze.com(国际版) 2. 创建并发布工作流: * 在工作流画布中搭建好逻辑(支持输入参数、LLM、代码节点、插件等) * 发布后,复制工作流 ID(通常在 URL 最后一段数字)

By Ne0inhk
Anaconda安装(2024最新版)

Anaconda安装(2024最新版)

安装新的anaconda需要卸载干净上一个版本的anaconda,不然可能会在新版本安装过程或者后续使用过程中出错,完全卸载干净anaconda的方法,可以参考我的博客! 第一步:下载anaconda安装包         官网:Anaconda | The Operating System for AI (不过官网是外网,这里推荐国内清华大学的镜像源,对于国内的网络友好,下载速度更快!) 清华镜像网:Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source MirrorIndex of /anaconda/archive/ | 清华大学开源软件镜像站,致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务,帮助用户更方便地获取开源软件。本镜像站由清华大学 TUNA 协会负责运行维护。https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/         这里有许多版本,博主这些选择下载最新版本的2024.06-1版本

By Ne0inhk