package main
import (
"flag"
"fmt"
"io/ioutil"
"net/http"
"strings"
)
//模拟curl命令发送http GET|POST|PUT|DELETE 请求
func main() {
url := flag.String("url", "http://ip:port/xxx", "request url")
method := flag.String("method", "GET|POST|PUT|DELETE", "request method")
reqBody := flag.String("reqBody", "{a:x}", "json data")
flag.Parse()
if strings.EqualFold(*method, "GET") {
get(*url)
return
}
if strings.EqualFold(*method, "POST") {
post(*url, "application/json", *reqBody)
return
}
if strings.EqualFold(*method, "PUT") {
put(*url, *reqBody)
return
}
if strings.EqualFold(*method, "DELETE") {
delete(*url, *reqBody)
return
}
}
func get(url string) {
fmt.Println("GET REQ...")
client := http.Client{}
rsp, err := client.Get(url)
if err != nil {
fmt.Println(err)
}
defer rsp.Body.Close()
body, err := ioutil.ReadAll(rsp.Body)
if err != nil {
fmt.Println(err)
}
fmt.Println("RSP:", string(body))
}
func post(url string, conte
golang模拟curl命令发送http GET|POST|PUT|DELETE 请求
最新推荐文章于 2026-04-05 02:57:58 发布
本文介绍了一段使用Go语言编写的代码,该代码能够模拟CURL命令,发送GET、POST、PUT和DELETE四种HTTP请求。通过解析命令行参数,用户可以指定请求的URL、方法和请求体,适用于REST接口的测试。文章提供了代码示例和使用说明。

2093

被折叠的 条评论
为什么被折叠?



