前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第十一章 http标准库和其他标准库

第十一章 http标准库和其他标准库

作者头像
用户7798898
发布2020-09-27 16:39:15
4360
发布2020-09-27 16:39:15
举报
文章被收录于专栏:盛开在夏天的太阳

其实这一章的内容, 我们在之前的测试章节都已经涉及过了.

一. 模拟一个http服务端

代码语言:javascript
复制
package main

import "net/http"

type handler int

func (h *handler) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
    writer.Write([]byte("abc"))
}

func main() {
    h := new(handler)
    http.ListenAndServe(":8889", h)
}

这就模拟了一个服务端, 我们可以网客户端发各种各样的数据.

二. 模拟一个http客户端

代码语言:javascript
复制
package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    resp, err := http.Get("http://localhost:8889")
    if err != nil {
        panic("error")
    }

    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}

这样就把刚刚服务端发送的abc读取出来了

三. 发送带有header的http请求

代码语言:javascript
复制
package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    // 使用自定义的request
    request, err := http.NewRequest(http.MethodGet, "http://localhost:8889", nil)
    if err != nil {
        panic("error")
    }
    // 添加一个ua, 这样服务端吧ua取出来, 就可以展示出来了
    request.Header.Add("ua", "ua")
    resp, err := http.DefaultClient.Do(request)
    //resp, err := http.Get("http://localhost:8889")
    if err != nil {
        panic("error")
    }

    defer resp.Body.Close()

    body, err := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}

四. 第四个讲的是pprof, 我之前在测试的时候已经详细研究过pprof用来监控web服务的性能, 这里就不在描述了,

给出一个连接: https://www.cnblogs.com/ITPower/articles/12324659.html

https://www.cnblogs.com/ITPower/articles/12317631.html

五. 其他标准库, 这里也是一代而过, 讲的并不详细, 学完这门课, 我们在集中精力研究各个标准库

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档