当前位置: 移动技术网 > IT编程>脚本编程>Go语言 > Go基础编程实践(九)—— 网络编程

Go基础编程实践(九)—— 网络编程

2019年07月09日  | 移动技术网IT编程  | 我要评论

下载网页

package main

import (
    "io/ioutil"
    "net/http"
    "fmt"
)

func main() {
    url := "http://www.cnblogs.com/gaiheilukamei"
    response, err := http.get(url)
    if err != nil {
        panic(err)
    }
    defer response.body.close()
    html, err2 := ioutil.readall(response.body)
    if err2 != nil {
        panic(err2)
    }
    // readall返回[]byte
    fmt.println(string(html))
}
// 这种直接下载下来的网页用处不大,旨在提供思路

下载文件

package main

import (
    "net/http"
    "io"
    "os"
    "fmt"
)

func main() {
    // 获取文件
    imageurl := "http://pic.uzzf.com/up/2015-7/20157816026.jpg"
    response, err := http.get(imageurl)
    if err != nil {
        panic(err)
    }
    defer response.body.close()
    // 创建保存位置
    file, err2 := os.create("pic.jpg")
    if err2 != nil {
        panic(err2)
    }
    // 保存文件
    _, err3 := io.copy(file, response.body)
    if err3 != nil {
        panic(err3)
    }

    file.close()
    fmt.println("image downloading is successful.")
}

创建web服务器

// 运行程序,打开浏览器,根据输入的查询参数将返回不同的值
// 例如:"http://localhost:8000/?planet=world" 将在页面显示"hello, world"
package main

import (
    "net/http"
    "log"
)

func sayhello(w http.responsewriter, r *http.request) {
    // query方法解析rawquery字段并返回其表示的values类型键值对。
    planet := r.url.query().get("planet")
    w.write([]byte("hello, " + planet))
}

func main() {
    http.handlefunc("/", sayhello)
    log.fatalln(http.listenandserve(":8000", nil)) 
}

创建文件服务器

// 在本程序同目录下创建images文件夹,放入一些文件
// 打开浏览器访问"http://localhost:5050"将会看到文件
package main

import "net/http"

func main() {
    http.handle("/", http.fileserver(http.dir("./images")))
    http.listenandserve(":5050", nil)
}

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网