登录
首页 >  Golang >  Go问答

发生 404 错误时,我试图使用 POST 请求下载文件到我的 API

来源:stackoverflow

时间:2024-03-10 20:03:22 210浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《发生 404 错误时,我试图使用 POST 请求下载文件到我的 API》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

这里 api 应该在发布表单请求时加载文件

curl -x post -d "url = http: //site.com/file.txt" http: // localhost: 8000 / submit

但是却出现404错误,请问是什么原因呢? 或者如何在api中通过post下载文件?

func downloadFile(url string) Task {
    var task Task
    resp, err := http.Get(url)
    if err != nil {
        fmt.Println("Error while downloading")
    }
    defer resp.Body.Close()
    filename := strings.Split(url, "/")[len(strings.Split(url, "/"))-1]
    fmt.Println(filename)
    out, err := os.Create(filename)
    if err != nil {
        fmt.Println("Error while downloading")
    }
    defer out.Close()
    _, err = io.Copy(out, resp.Body)
    fmt.Println("Error while downloading")
}

func submit(c *gin.Context) {
    c.Header("Content-Description", "File Transfer")
    c.Header("Content-Transfer-Encoding", "binary")
    url := c.Param("url")
    fmt.Println("url " + url)
    task := downloadFile(url)
    hashFile(task.ID)
    c.JSON(200, task.ID)
}

func main() {
    router := gin.Default()
    router.POST("/submit/:url", submit)
}

解决方案


http 状态 404 表示服务器找不到所请求的 url。考虑到您的curl 命令,这似乎非常有意义。您似乎正在请求 url http://localhost:8000/submit,但您的应用程序只有一个路由:

router.POST("/submit/:url", submit)

此路由在 /submit 之后需要第二个 url 段,例如 /submit/foo

终于介绍完啦!小伙伴们,这篇关于《发生 404 错误时,我试图使用 POST 请求下载文件到我的 API》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>