request.FormValue пуст в «net / http» в Go - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь создать простой 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
}

Буду признателен за любую помощь!Спасибо!

1 Ответ

0 голосов
/ 16 декабря 2018

недействительно при request.FormValue("?uri")

uri := request.FormValue("uri")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...