仓颉语言HTTPS请求实战指南

目录

引言

程序编写

运行结果

结束语


引言

仓颉团队提供了标准的HTTP协议示例(项目目录预览 - Cangjie-Examples:本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。 - GitCode),不过该例子不能处理https网站,这里记录一下https网站的处理方法。

程序编写

如果要访问https。官方的net/http包需要外部依赖 OpenSSL 3 的 ssl 和 crypto 动态库文件,故使用前需安装相关工具。 Ubuntu 22.04 系统上可使用 sudo apt install libssl-dev 命令安装 libssl-dev 工具包。

访问网站前需要先调用tlsConfig进行配置。完整的程序如下:

import net.http.*
import net.tls.*
import std.io.StringReader


func startClient(): Unit {
    // 1. 构建 client 实例
    let client = ClientBuilder().tlsConfig(TlsClientConfig()).build()
    // 2. 发送 request
    let resp = client.get("https://www.baidu.com")
    // 3. 读取response
    println(resp)
    StringReader(resp.body).readToEnd() |> println
    // 4. 关闭连接
    client.close()
}
 
main () {
    startClient()
}

运行结果

下面是程序运行结果,其中HTML页面部分省略了。

developer@developer:~/IDEProjects$ cjc -o http-api-ctrl http-api-ctrl.cj 
developer@developer:~/IDEProjects$ ./http-api-ctrl 
HTTP/1.1 200 OK
accept-ranges: bytes
cache-control: no-cache
connection: keep-alive
content-length: 29506
content-type: text/html
date: Fri, 13 Jun 2025 14:32:55 GMT
p3p: CP=" OTI DSP COR IVA OUR IND COM ",CP=" OTI DSP COR IVA OUR IND COM "
pragma: no-cache
server: BWS/1.1
set-cookie: BAIDUID=C5D3FFA824BD7E7918A137475F057EF1:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
set-cookie: BIDUPSID=C5D3FFA824BD7E7918A137475F057EF1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
set-cookie: PSTM=1749825175; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
set-cookie: BAIDUID=C5D3FFA824BD7E79A070F41AE9D0A337:FG=1; max-age=31536000; expires=Sat, 13-Jun-26 14:32:55 GMT; domain=.baidu.com; path=/; version=1; comment=bd
traceid: 174982517501916377708034852159016702599
vary: Accept-Encoding
x-ua-compatible: IE=Edge,chrome=1
x-xss-protection: 1;mode=block

body size: 29506

<!DOCTYPE html>

结束语

Cangjie语言目前最大的问题还是例子太少,好多东西都需要自己摸索。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值