JSON 是目前最为流行的序列化手段,Go 语言内置 encoding/json 包用于 JSON 序列化 / 反序列化 操作。本文以详细代码示例,演示 encoding/json 包的使用方式。
序列化
对于已有类型,序列化只需一行代码:
|
|
JSON 是目前最为流行的序列化手段,Go 语言内置 encoding/json 包用于 JSON 序列化 / 反序列化 操作。本文以详细代码示例,演示 encoding/json 包的使用方式。
对于已有类型,序列化只需一行代码:
|
|
发起HTTP请求 一文介绍了如何使用 net/http 包发起 HTTP 请求。net/http 包同样提供了用于开发实现 HTTP 服务的基础类库,本文将进一步介绍如何使用这些类库。
先来看看一个简单的例子——计数器服务接口。这个接口非常简单,每次均返回接口调用总次数,以 1 开始:
|
|
在日常开发中,发起 HTTP 请求是一个非常频繁的任务。
Go 语言提供了 net/http 包,协助用户实施与 HTTP 协议相关的开发任务。该包既提供了 HTTP 服务器 实现,又提供了 客户端 实现。
本文介绍如何使用 net/http 包发起 HTTP 请求,覆盖大部分应用场景:
发起 Get 请求是最常见的场景之一,使用 http.Get 函数即可。代码示例如下:
|
|
相对而言,Go 语言还是一门非常年轻的语言。虽然发展迅猛,局限性也有——类库不是特别丰富。有些开源项目,例如 x264 ,只有 C 语言版本, Go 重写一遍也不太现实。
好在 Go 提供了调用 C 函数的机制—— cgo ,本文用一个实际例子演示如何使用 cgo 调用 C 函数。
为了演示需要,虚设一个名为 callee 的函数库。函数库只提供一个名为 sayHello 的函数,接口如头文件 callee.h 所示:
|
|
sayHello 函数只是简单输出 Hello, world!
,实现见源文件 callee.c :
|
|
接下来,将上述代码编译成动态库:
|
|