设为首页 加入收藏

TOP

Go基础编程实践(九)—— 网络编程
2019-07-08 22:10:24 】 浏览:84
Tags:基础 编程 实践 网络编程

下载网页

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)
}
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Go - Map 集合 下一篇Go基础编程实践(八)—— 系统编..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目