我正在尝试使用端点创建一个简单的http服务,以将文件下载到Go中的本地系统。该链接位于?uri
标签中,但是当我想要获取它时,会收到一个空字符串。我试图解析请求的形式,但没有帮助。这是我的代码:
func main() {
http.HandleFunc("/download", DownloadHandler)
log.Fatal(http.ListenAndServe(":8080", nil))
}
func DownloadHandler(writer http.ResponseWriter, request *http.Request) {
prsErr := request.ParseForm()
if prsErr != nil{
panic(prsErr)
}
uri := request.FormValue("?uri")
_, _ = writer.Write([]byte(uri))
err := DownloadFile("img.png", uri)
if err != nil {
panic(err)
}
}
func DownloadFile(filepath string, url string) error {
// Create the file
out, err := os.Create(filepath)
if err != nil {
return err
}
defer out.Close()
// Get the data
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
// Write the body to file
_, err = io.Copy(out, resp.Body)
if err != nil {
return err
}
return nil
}
我将不胜感激!谢谢!
答案 0 :(得分:0)
在request.FormValue("?uri")
处无效
uri := request.FormValue("uri")