Go語言提供了快捷方便的方法進行HTTP請求發送,特別是對于JSON字符串的請求發送,更是簡單易懂。
在Go中,我們可以通過http包中的常用方法,實現向服務器發送JSON字符串的請求并且解析響應數據。
下面是一個基于HTTP POST方法向服務器發送JSON數據的例子:
package main import ( "bytes" "encoding/json" "fmt" "net/http" ) type Request struct { Username string `json:"username"` Password string `json:"password"` } type Response struct { Status int `json:"status"` Message string `json:"message"` } func main() { url := "https://example.com/api/login" reqBody := Request{"user123", "password123"} jsonBody, _ := json.Marshal(reqBody) req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonBody)) req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() var resBody Response err = json.NewDecoder(resp.Body).Decode(&resBody) if err != nil { panic(err) } fmt.Println("Status:", resBody.Status) fmt.Println("Message:", resBody.Message) }
首先我們定義了一個Request和Response結構體,用于存儲請求和響應的數據。然后我們創建一個HTTP客戶端并發送POST請求,將JSON數據作為請求體發送到服務器。請求頭部中設置Content-Type為application/json,表示請求體是JSON格式數據。
最后,我們定義一個變量resBody用來接收響應數據,并將響應數據JSON解碼到響應結構體中,通過打印輸出,我們可以方便的獲取到請求的響應數據。