Go - HTTP POST/GET request 筆記
24 May 2023Go
我的 Go 版本:go version go1.20.1 darwin/amd64
GET
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
resp, err := http.Get("https://weippig.com/")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
}
POST
假設要發送 POST 請求給某個叫做 http://apple.com
的 url,並且使用 JSON 格式傳送字串 merchant_id 和 merchant_trade_no 以及數字 total_amount:
import (
"bytes"
"encoding/json"
"fmt"
"log"
"net/http"
"io/ioutil"
)
func main() {
url := "http://apple.com"
values := map[string]interface{}{
"merchant_id": "111",
"merchant_trade_no": "123",
"total_amount": 1,
}
json_data, err := json.Marshal(values)
if err != nil {
log.Fatal(err)
}
resp, err := http.Post(url, "application/json",
bytes.NewBuffer(json_data))
if err != nil {
log.Fatal(err)
}
body, error := ioutil.ReadAll(resp.Body)
if error != nil {
fmt.Println(error)
}
resp.Body.Close()
fmt.Println(string(body))
}