目录

一、配置Stdx

二、启动Server

三、小结


一、配置Stdx

想要在仓颉项目里,去开发Web编程,需要额外下载仓颉stdx扩展包和OpenSSL,这里的内容,我在环境安装里已经介绍,这里不再赘述,在编译器创建项目后,找到cjpm.toml,如图所示

compile-option = "-lcangjie-dynamicLoader-opensslFFI"

[target.x86_64-w64-mingw32]
  [target.x86_64-w64-mingw32.bin-dependencies]
    path-option = ["D:\\Software\\Develop\\Huawei\\Cangjie\\stdx\\windows_x86_64_cjnative\\static\\stdx"]

保存,选择“Yes”,然后更新项目和构建

cjpm clean

cjpm update

cjpm check

cjpm build

控制台出现“Success”即可

二、启动Server

核心代码

package WebStudy

import stdx.net.http.*

main(): Unit {
    server()
}

// 初识Server
public func server(): Unit {
    // 构建服务
    let server: Server = ServerBuilder().addr('127.0.0.1').port(8080).build()
    let web: FuncHandler = FuncHandler { httpContext: HttpContext =>  
        httpContext.responseBuilder.body('你好,仓颉Web!')
    }
    server.distributor.register('/', web)
    println('Web服务已启动...')
    server.serve()
}

在浏览器访问

http://localhost:8080/

运行结果

出现乱码,原因就是,字符编码出现问题,浏览器默认ISO-8859-1,如果想要中文正常显示,需要修改代码,设置编码为UTF-8。

核心代码

package WebStudy

import stdx.net.http.*

main(): Unit {
    server()
}

// 初识Server
public func server(): Unit {
    // 构建服务
    let server: Server = ServerBuilder().addr('127.0.0.1').port(8080).build()
    let web: FuncHandler = FuncHandler { httpContext: HttpContext =>  
        // 设置 中文可以显示的UTF-8
        httpContext.responseBuilder.header('Content-Type', 'text/html;charset=UTF-8')
        httpContext.responseBuilder.body('你好,仓颉Web!')
    }
    server.distributor.register('/', web)
    println('Web服务已启动...')
    server.serve()
}

运行结果

三、小结

本章为大家详细的介绍了仓颉Server的内容,下一章为大家介绍Http请求的内容。最后,创作不易,如果大家觉得我的文章对学习仓颉Web基础编程有帮助的话,就动动小手,点个免费的赞吧!收到的赞越多,我的创作动力也会越大哦,谢谢大家🌹🌹🌹!!!

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。