以下是创建GET和POST请求的示例代码:

package main

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

func main() {
	// 创建GET请求
	getRequest, err := http.NewRequest("GET", "https://api.example.com/data", nil)
	if err != nil {
		fmt.Println("创建GET请求失败:", err)
		return
	}

	// 发送GET请求并获取响应
	client := &http.Client{}
	getResponse, err := client.Do(getRequest)
	if err != nil {
		fmt.Println("发送GET请求失败:", err)
		return
	}
	defer getResponse.Body.Close()

	// 读取GET响应的内容
	getResponseBody, err := ioutil.ReadAll(getResponse.Body)
	if err != nil {
		fmt.Println("读取GET响应失败:", err)
		return
	}

	// 打印GET响应的内容
	fmt.Println(string(getResponseBody))

	// 创建POST请求
	postData := []byte(`{"key1": "value1", "key2": "value2"}`)
	postRequest, err := http.NewRequest("POST", "https://api.example.com/data", bytes.NewBuffer(postData))
	if err != nil {
		fmt.Println("创建POST请求失败:", err)
		return
	}
	postRequest.Header.Set("Content-Type", "application/json") // 设置请求头,指定内容类型为JSON

	// 发送POST请求并获取响应
	postResponse, err := client.Do(postRequest)
	if err != nil {
		fmt.Println("发送POST请求失败:", err)
		return
	}
	defer postResponse.Body.Close()

	// 读取POST响应的内容
	postResponseBody, err := ioutil.ReadAll(postResponse.Body)
	if err != nil {
		fmt.Println("读取POST响应失败:", err)
		return
	}

	// 打印POST响应的内容
	fmt.Println(string(postResponseBody))
}

请注意,当你创建一个POST请求时,通常需要设置Content-Type头部来告诉服务器你正在发送的数据类型。在这个例子中,我们设置为application/json,因为我们发送的是JSON数据。如果你发送的是表单数据,你可能需要将其设置为application/x-www-form-urlencoded