这里的 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
。
关于api - 当我尝试使用 POST 下载文件到我的 api 时出现 404 错误是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56460217/