golang学习笔记(net/http库基本使用)

关于net/http库

我们先看看标准库net/http如何处理一个请求。

import (
	"fmt"
	"log"
	"net/http"
)

var count = 0

func main() {
	http.HandleFunc("/", handler)
	http.HandleFunc("/count", counter)
	log.Fatal(http.ListenAndServe("localhost:8000", nil))
}

func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "URL.Path = %q\n", r.URL.Path)
	fmt.Printf("URL.Path = %q\n", r.URL.Path)
}

func counter(w http.ResponseWriter, r *http.Request) {
	count++
	fmt.Fprintf(w, "URL.Path = %q\n", r.URL.Path)
	fmt.Println(count)
}

代码块定义了两个不同的路由,分别是“/”和“/count”,分别绑定 handler 和 counter, 根据不同的HTTP请求会调用不同的处理函数。
调用“/”路由处理方法得到的结果是:
在这里插入图片描述
调用“/count”路由处理方法得到的结果是:
在这里插入图片描述

发送Get请求并获取响应

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

func main() {
	resp, err := http.Get("https://www.baidu.com")
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	defer resp.Body.Close()

	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	fmt.Println(string(body))
}

执行程序获取到的结果是:
在这里插入图片描述

发送Post请求并获取响应

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

func main() {
	payload := strings.NewReader("data=example")

	resp, err := http.Post("https://www.baidu.com", "application/x-www-form-urlencoded", payload)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}
	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	fmt.Println(string(body))
}

执行程序获取到的结果是:
在这里插入图片描述

相关推荐

  1. Golang学习笔记01

    2024-04-22 09:06:06       21 阅读
  2. Golang学习笔记_RabbitMQ的原理架构和使用

    2024-04-22 09:06:06       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-22 09:06:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-22 09:06:06       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-22 09:06:06       87 阅读
  4. Python语言-面向对象

    2024-04-22 09:06:06       96 阅读

热门阅读

  1. LeetCode hot100-29-Y

    2024-04-22 09:06:06       32 阅读
  2. 【AIGC调研系列】llama 3与GPT4相比的优劣点

    2024-04-22 09:06:06       44 阅读
  3. webpack -vite(Rollup )-Gulp (一)

    2024-04-22 09:06:06       33 阅读
  4. K8s: 集群内Pod通信机制之环境变量

    2024-04-22 09:06:06       30 阅读
  5. 2024蓝桥杯每日一题(分解质因数)

    2024-04-22 09:06:06       33 阅读
  6. MongoDB聚合运算符:$sampleRate

    2024-04-22 09:06:06       30 阅读
  7. MongoDB的安装使用

    2024-04-22 09:06:06       34 阅读
  8. IntelliJ IDEA的快速配置详细使用

    2024-04-22 09:06:06       34 阅读
  9. MongoDB与MySQL的区别???MongoDB的优势???

    2024-04-22 09:06:06       36 阅读
  10. CSS代码收集(持续更新)

    2024-04-22 09:06:06       34 阅读