无法从 url 中找到公共文件

我正在尝试使用以下方法获取公开可用文件的内容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)

}

这是一个游乐场示例


海绵宝宝撒
浏览 153回答 1
1回答

倚天杖

ioutil.ReadFile() 不支持 http。如果您查看源代码 ( https://golang.org/src/io/ioutil/ioutil.go?s=1503:1549#L42 ),请使用 os.Open 打开文件。我想我可以做这个编码。package mainimport (    "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 playgound 不是协议(go error dial tcp: Protocol not available)。所以,你必须在电脑上做。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go