go http请求库HttpRequest
原文链接
目录
安装
发送请求
传递URL参数
响应内容
Json响应内容
定制请求头
BasicAuth 认证
JSON请求
Cookie
超时
关闭证书验证
调试模式
连接操作
Respone对象
安装
go get https://github.com/kirinlabs/HttpRequest
发送请求
导入HttpRequest
import "github.com/kirinlabs/HttpRequest"
实例化
req := Http ...
GO语言slice详解(结合源码)
一、GO语言中slice的定义
slice 是一种结构体类型,在源码中的定义为:
src/runtime/slice.go
type slice struct {
array unsafe.Pointer
len int
cap int
}
从定义中可以看到,slice是一种值类型,里面有3个元素。array是数组指针,它指向底层分配的数组;len是底层数组的元素个数;cap是底层数组的容量,超过 ...
go 文件与目录操作
文件打开与关闭
文件打开
原始的文件打开函数:
func OpenFile(name string, flag int, perm FileMode) (*File, error)
name:绝对路径或相对路径(相对于进程当前工作目录)flag:指定文件的访问模式,在os中这些参数被定义为常量
const (
O_RDONLY int = syscall.O_RDONLY // 只读模式打开文件
O_WRONLY int = ...
go语言字节序 encoding/binary
字节序
字节序就是多字节数据类型 (int, float 等)在内存中的存储顺序。在网络传输中基于文本类型的协议(比如 JSON)和二进制协议都是字节通信,是采用字节序进行数据包的处理。
字节序可分为大端序,低地址端存放高位字节;小端序与之相反,低地址端存放低位字节。
在计算机内部,小端序被广泛应用于现代性 ...
go接口详解
go面向接口编程知识点
接口定义与格式
隐式实现及实现条件
接口赋值
空接口
接口嵌套
类型断言
多态
接口定义与格式
接口(interface)是一种类型,用来定义行为(方法)。这句话有两个重点,类型和定义行为。
首先解释定义行为:接口即一组方法定义的集合,定义了对象的一组行为,就是定义了一些函数,由具体 ...
Go文档:Command go(go命令)翻译
本文更新于2025-08-23。
翻译自Command go官方文档(https://golang.org/cmd/go/,国内可使用https://golang.google.cn/cmd/go/;同理,文中golang.org的链接也可使用golang.google.cn替换)。章节段落结构稍作改变,对应的go版本为go1.25.0。
目录gogo bug——启动bug报告go build——编译包及其依赖包go clean——删除对 ...
Go依赖管理及Go module使用
Go语言的依赖管理随着版本的更迭正逐渐完善起来。
依赖管理
为什么需要依赖管理
最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决?
godep
Go语言从v1.5开始开始引入vendor模式,如果项目目录下有ve ...
Go操作etcd
etcd是近几年比较火热的一个开源的、分布式的键值对数据存储系统,提供共享配置、服务的注册和发现,本文主要介绍etcd的安装和使用。
etcd
etcd介绍
etcd是使用Go语言开发的一个开源的、高可用的分布式key-value存储系统,可以用于配置共享和服务的注册和发现。
类似项目有zookeeper和consul。
etcd具有以下特点:
完全复 ...
Go切片的长度和容量及growslice源码分析
虽然说 Go 的语法在很大程度上和 PHP 很像,但 PHP 中却是没有“切片”这个概念的,在学习的过程中也遇到了一些困惑,遂做此笔记。
困惑1:使用 append 函数为切片追加元素后,切片的容量时变时不变,其扩容机制是什么?
困惑2:更改切片的元素会修改其底层数组中对应的元素。为什么有些情况下更改了切片元素,其底层数组元 ...
Go 每日一库之 fsnotify
简介
上一篇文章Go 每日一库之 viper中,我们介绍了 viper 可以监听文件修改进而自动重新加载。
其内部使用的就是fsnotify这个库,它是跨平台的。今天我们就来介绍一下它。
快速使用
先安装:
$ go get github.com/fsnotify/fsnotify
后使用:
package main
import (
"log"
"github.com/fsnotify/fsnotify"
)
func ...
Go 与 PHP 的语法对比
Go 是由 Google 设计的一门静态类型的编译型语言。它有点类似于 C,但是它包含了更多的优点,比如垃圾回收、内存安全、结构类型和并发性。它的并发机制使多核和网络机器能够发挥最大的作用。这是 GoLang 的最佳卖点之一。此外,Go 速度快,表现力强,干净且高效。这也是 Go 如此吸引开发者学习的原因。
PHP 是一种动态类型 ...
[go]gin中间件
Go Web轻量级框架Gin学习系列:中间件使用详解
gin中间件使用
- 中间件的作用:
请求到达http请求处理方法之前,拦截请求
认证
权限校验
限流
数据过滤
ip白名单
处理完请求后,拦截响应,冰进行相应的处理
统一添加响应头
数据过滤
- 中间件加的位置
全局加
路由组加
路由明细加
- 默认使用了Logger(), ...
Go 每日一库之 go-ini
简介
ini 是 Windows 上常用的配置文件格式。MySQL 的 Windows 版就是使用 ini 格式存储配置的。
go-ini是 Go 语言中用于操作 ini 文件的第三方库。
本文介绍go-ini库的使用。
快速使用
go-ini 是第三方库,使用前需要安装:
$ go get gopkg.in/ini.v1
也可以使用 GitHub 上的仓库:
$ go get github.com/go-ini/ini
首先 ...
Go和Java的性能对比,真的如此吗?
前两天我看到了一篇文章,测试Java和Go和Python的性能,其测试内容是一个排序,排序一亿次,然后看那个语言耗时最短,我先贴一下这个文章的测试结果,Java竟然比Go快了一倍不止,Go不是号称接近C的性能吗,难道?结尾我会把我看的这篇文章链接共享出来,接下来听我分析,
准备测试代码
Java测试代码
可以看的出来逻辑很简单 ...
Go GRPC 入门(一)
前言
微服务相关
使用 GRPC 通讯的 Golang 微服务入门
举例写一个微服务,接收网址发送请求获取返回结果返回
正文
安装工具
安装 protobuf
这是 proto 文件的编译器
点我下载
选择最新的 releases 中的适合你版本的包下载即可
如 windows 选 win64.zip 下载后解压
解压后打开包内的 bin 文件夹,里面有 protoc.exe
将其粘贴 ...
go操作etcd
文章转自
go操作etcd
etcd
etcd介绍
etcd是使用Go语言开发的一个开源的、高可用的分布式key-value存储系统,可以用于配置共享和服务的注册和发现。
类似项目有zookeeper和consul。
etcd具有以下特点:
完全复制:集群中的每个节点都可以使用完整的存档
高可用性:Etcd可用于避免硬件的单点故障或网络问题
一 ...
Go HTTP编程
目录net/http介绍服务端默认的Serverhttp.HandleFunchttp.Handlehttp.Request自定义ServerHTML模板定义模板文件解析模板文件模板渲染基本示例定义模板文件解析和渲染模板{{.}}注释pipeline变量移除空格if语句rangewith比较函数预定义函数自定义函数嵌套templateblock标识符上下文感知客户端基本的HTTP/HTTPS请求GET请求示例 ...
Go并发编程
目录概述并行和并发常见并发编程技术进程并发程序和进程进程状态进程并发线程并发什么是线程线程同步锁的应用互斥量mutex读写锁协程并发Go并发goroutine什么是goroutinegoroutine的创建goroutine特性runtime包GoschedGoexitGOMAXPROCSchannel定义channel变量无缓冲的channel有缓冲的channel关闭channel单向channelchannel总 ...
Go网络文件传输
流程分析
借助TCP完成文件的传输,基本思路如下:
发送方(客户端)向服务端发送文件名,服务端保存该文件名。
接收方(服务端)向客户端返回一个消息ok,确认文件名保存成功。
发送方(客户端)收到消息后,开始向服务端发送文件数据。
接收方(服务端)读取文件内容,写入到之前保存好的文件中。
由于文件传输需要稳定可靠的连接 ...
Go网络编程
目录概述网络协议典型协议分层模型网络分层架构层与协议协议功能链路层网络层传输层应用层通信过程Socket编程什么是Socket网络应用程序设计模式C/S模式B/S模式优缺点TCP的C/S架构简单的C/S模型通信Server端Client端并发的C/S模型通信并发Server并发ClientTCP通信三次握手四次挥手UDP通信UDP服务器UDP客户端并发UDP与TCP的差 ...