我正在尝试使用ioutil.ReadFile()
获取公开可用文件的内容,但是找不到该文件:panic: open http://www.pdf995.com/samples/pdf.pdf: No such file or directory
这是我的代码:
// Reading and writing files are basic tasks needed for
// many Go programs. First we'll look at some examples of
// reading files.
package main
import (
"fmt"
"io/ioutil"
)
// Reading files requires checking most calls for errors.
// This helper will streamline our error checks below.
func check(e error) {
if e != nil {
panic(e)
}
}
func main() {
fileInUrl, err := ioutil.ReadFile("http://www.pdf995.com/samples/pdf.pdf")
if err != nil {
panic(err)
}
fmt.Printf("HERE --- fileInUrl: %+v", fileInUrl)
}
这是一个去游乐场的例子
答案 0 :(得分:1)
ioutil.ReadFile()不支持http。
如果您查看源代码(https://golang.org/src/io/ioutil/ioutil.go?s=1503:1549#L42),请使用os.Open打开文件。
我想我可以进行这种编码。
package main
import (
"io"
"net/http"
"os"
)
func main() {
fileUrl := "http://www.pdf995.com/samples/pdf.pdf"
if err := DownloadFile("example.pdf", fileUrl); err != nil {
panic(err)
}
}
func DownloadFile(filepath string, url string) error {
// Get the data
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
// Create the file
out, err := os.Create(filepath)
if err != nil {
return err
}
defer out.Close()
// Write the body to file
_, err = io.Copy(out, resp.Body)
return err
}
但是,不要使用协议(go error dial tcp: Protocol not available)。
所以,您必须在PC上完成
。