欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

go從post獲取json文件下載

謝彥文1年前8瀏覽0評論

在Go語言中,我們可以使用net/http包提供的方法處理HTTP請求和響應。本文將介紹如何從POST請求中獲取JSON文件的下載鏈接。

// 首先,我們需要定義一個處理POST請求的方法,例如:
func handlePostRequest(w http.ResponseWriter, r *http.Request) {
// 檢查請求方法是否為POST
if r.Method != "POST" {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
// 從請求參數中獲取JSON數據
var data map[string]interface{}
err := json.NewDecoder(r.Body).Decode(&data)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// 從JSON數據中獲取下載鏈接
downloadURL := data["download_url"].(string)
// 發送HTTP請求下載文件
resp, err := http.Get(downloadURL)
if err != nil {
htttp.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer resp.Body.Close()
// 設置響應頭部,告知瀏覽器下載文件
w.Header().Set("Content-Disposition", "attachment; filename=file.txt")
w.Header().Set("Content-Type", "application/octet-stream")
w.Header().Set("Content-Length", strconv.Itoa(int(resp.ContentLength)))
// 將文件內容寫入響應體
io.Copy(w, resp.Body)
}
// 最后,我們可以在HTTP處理函數中調用該方法來處理POST請求,例如:
func main() {
http.HandleFunc("/download", handlePostRequest)
http.ListenAndServe(":8080", nil)
}

在以上代碼中,我們首先檢查了請求方法是否為POST,并從請求參數中獲取JSON數據。接著,我們從JSON數據中獲取下載鏈接,并使用http.Get方法發送HTTP請求下載文件。最后,我們設置了響應頭部,告知瀏覽器下載文件,以及將文件內容寫入響應體。