gin启动https支持

gin是一个使用Go语言开发的Web框架,具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,支持中间件等。 在工作中有时候需要支持https服务,gin可以通过中间件的方式来提供对https的支持,这里使用的是secure来提供https服务支持。这里给出一个简单的使用示例: 示例代码 pac

验证来自微信服务器的消息

内容来自微信官方文档。 接入微信公众平台开发,开发者需要按照如下步骤完成: 填写服务器配置 验证服务器地址的有效性 依据接口文档实现业务逻辑 微信官方的文档已经写得很详细,官方给出的例子是基于php的,这里给出go实现的消息验证,http框架使用的是gin。 type WeChatVerify st

处理来自微信的文本消息

官方文档在这里。 我们的公众号服务器可以接收来自微信服务器的普通消息,包括: 文本消息 图片消息 语音消息 小视频消息 地理位置消息 链接消息 这里以文本消息为例,介绍如何处理微信服务器转发给我们的用户消息。 当普通微信用户向公众账号发消息时,微信服务器将向我们填写写的URL上发送一条包含XML数据

Jekyll安装

本文来自Jekyll官方文档。 简介 Jekyll是一个静态网站生成器,它可以把Markdown写就的文本根据指定的布局生成静态网站。你可以调整网站的外观、URL、页面展示数据等信息。 准备工作 Jekyll的安装需要以下几个软件: Ruby v2.5.0或更高版本 RubyGems gcc和mak

Nginx使用

docker部署Nginx服务 Nginx服务docker部署时,可以使用一下compose文件进行简单部署: version: '3.7' services: nginx: image: nginx:1.23.3-alpine volumes: - ./default.conf:/etc/ngin

Gorm日志设置

Logger Gorm提供了一个默认的logger实现,默认情况下日志数据级别为warn,同时输出慢SQL: Default = New(log.New(os.Stdout, "\r\n", log.LstdFlags), Config{ SlowThreshold: 200 * time.Mill

zap自定义日志级别

简介 zap是有uber开发的一款日志库。 zap提供了三个快速创建Logger方法: NewProduction: 以JSON格式记录Info级别及以上的标准错误日志 NewDevelopment: 以JSON格式记录Debug级别及以上的标准错误日志 NewExample: 提供一个测试实例,供

MySQL使用笔记

查询结果导出到文件 终端命令下直接导出 除了在mysql命令行下导出查询结果,还可以在终端直接导出查询结果到文件中: mysql -uroot -p -e "select * from test" > xxx.csv 如果导出结果中涉及到中文,可以使用--default-character-set=

Fabric配置块结构解析

本文是区块链浏览器系列的第二篇。 上一篇介绍了交易块中的数据结构,这一篇介绍区块链网络中的配置块数据结构。 这两种区块中数据结构内容的区别主要Payload结构体中的Data域中的内容,接下来将以类图的形式来解析Data域包含的信息: classDiagram class Payload{ Head

Docker部署Jekyll

1. 起因 前两天终于下单买了个域名,10年的使用期限。既然有了域名,那自己的博客就可以搞起来了。 现在博客的记录用的是Jekyll+Github Pages,所以决定之后自己的博客网站也采用Jekyll来部署实现,为了之后的维护、升级,决定采用docker来部署Jekyll。 2. 部署 dock

gRPC入门

1. gRPC简介 gRPC是一种高性能、开源和通用的远程过程调用(RPC)框架,由Google开源并维护。它使用Protocol Buffers(protobuf)作为接口定义语言(IDL),提供跨平台、跨语言的RPC调用支持。gRPC具有以下几个特点: 高性能:使用HTTP/2协议,支持多路复用

设置Windows主机的浏览器为wls2的默认浏览器

这里以Chrome为例。 1. 准备工作 wsl是可以使用Windows主机上安装的exe程序,出于安全考虑,默认情况下改功能是无法使用。要使用的话,终端需要以管理员权限启动。 我这里以Windows Terminal为例,介绍如何默认使用管理员权限打开终端,具体操作如下图所示: 2. 操作 wsl

我的OpenAI库发布了!!!

chatGPT正式发布已经有段时间了,这段时间我也深度体验了chatGPT的魅力。 OpenAI除了提供网页版的chatGPT,还通过api的形式提供了很多其它服务,包括文字纠错、图片生成、音频转换等等。 作为程序员,即使有现成的openai库,但还是免不了想自己造轮子,所以就有这个openai库。

微信公众号消息加解密

在微信公众号的使用过程中,为了提高信息传输的安全性,可以在服务器配置中将消息加解密模式指定为安全模式。 启用安全模式后,公众号主动调用API的情况并不会受影响,只有被动回复用户的消息时才需要对消息进行加解密。 官方提供了5种开发语言的示例代码,参照官方给的C++示例代码,本文给出go语言的解密实现:

go slice使用

1. 简介 在go中,slice是一种动态数组类型,其底层实现中使用了数组。slice有以下特点: *slice本身并不是数组,它只是一个引用类型,包含了一个指向底层数组的指针,以及长度和容量。 *slice的长度可以动态扩展或缩减,通过append和copy操作可以增加或删除slice中的元素。

Docker获取Let`s Encrypt SSL 证书

文中的操作都是在CentOS Stream release 9下执行的,使用的是root用户。 1. 安装docker # 卸载原有的docker yum remove docker docker-client docker-client-latest docker-common docker-la

openAI发布v0.2.0了

时隔20天,OpenAI从v0.0.1升级到了v0.2.0。与v0.0.1版相比,v0.2.0版主要做了以下改动: 把cmd目录下微信公众号的相关服务迁移到了这里 完善了cmd下的测试服务,针对openAI库里实现的各个接口都提供了响应的调用接口,服务运行后可以通过postman进行测试 完成了Fi

go多版本管理

在日常开发工作过程中,很多时候我们都需要在自己的机器上安装多个go版本,像是go1.16引入的embed,go1.18引入了泛型;又或是自己本地使用的是最新版,但公司的项目中使用的go1.14、go1.13甚至是更早的版本。 那么有没有既不影响我们自己的本地环境,又能兼顾历史项目的办法呢?答案当然是

x509: cannot validate certificate for xxx because it doesn't contain any IP SANs

项目中有时候需要访问https网站,但如果该网站使用的是自建证书,那client端验证server端证书时,有时候会报错: > x509: cannot validate certificate for xxx because it doesn't contain any IP SANs 碰到这种情

如何让你的结构体更高效

> 文中所涉及到的代码运行结果均是在64位机器上执行得到的. ## 基础知识回顾 在Go中,我们可以使用`unsafe.Sizeof(x)`来查看变量所占的内存大小。以下是Go内置的数据类型占用的内存大小: | 类型 | 内存大小(字节数) | | : | : | | bool | 1 | | in