下载网页

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基础编程实践(九)—— 网络编程的更多相关文章

  1. 【Linux网络编程】TCP网络编程中connect()、listen()和accept()三者之间的关系

    [Linux网络编程]TCP网络编程中connect().listen()和accept()三者之间的关系 基于 TCP 的网络编程开发分为服务器端和客户端两部分,常见的核心步骤和流程如下: conn ...

  2. Java-Runoob-高级编程:Java 网络编程

    ylbtech-Java-Runoob-高级编程:Java 网络编程 1.返回顶部 1. Java 网络编程 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.n ...

  3. UNIX环境高级编程——TCP/IP网络编程 常用网络信息检索函数

    UNIX环境高级编程——TCP/IP网络编程   常用网络信息检索函数 gethostname()   getppername()   getsockname()   gethostbyname() ...

  4. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  5. 【网络编程3】网络编程基础-arp请求(局域网主机扫描)

    ARP协议 ARP(Add ress Resolution Protocol)地址解析协议位于数据链路层,是根据IP地址获取MAC地址的一个协议. ARP 查看指令 arp -a 显示所有接口的当前A ...

  6. 【网络编程1】网络编程基础-TCP、UDP编程

    网络基础知识 网络模型知识 OSI七层模型:(Open Systems Interconnection Reference Model)开放式通信系统互联参考模型,是国际标准化组织(ISO)提出的一个 ...

  7. 黑马程序员_java基础笔记(08)...GUI,网络编程,正则表达式

    —————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— GUI(Graphical User Interface)(图形用户接口):用图形 ...

  8. 第三模块:面向对象&网络编程基础 第2章 网络编程

    01-计算机基础 02-什么是网络 03-五层协议详解 04-传输层详解 05-什么是Socket 06-基于socket实现简单套接字通信 07-在简单套接字基础上加上通信循环 08-客户端与服务端 ...

  9. python基础教程总结13——网络编程,

    1.网络设计模块 1.1 socket模块    根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认. 1)服务器监听:是服务器端套接 ...

  10. linux高性能服务器编程 (五) --Linux网络编程基础api

    第五章 Linux网络编程基础api 1.主机字节序和网络字节序 字节序是指整数在内存中保存的顺序.字节序分为大端字节序.小端字节序. 大端字节序:一个整数的高位字节数据存放在内存的低地址处.低位字节 ...

随机推荐

  1. js实现延迟加载

    defer async.await 动态创建DOM jQ的getScript()方法 window.onload().$(document).ready() Promise setTimeout.se ...

  2. vlc for mac设置中文的方法

    VLC for mac是一款mac系统下的多媒体播放器,支持播放MPEG-1.MPEG-2.MPEG-4.DivX.MP3和OGG,以及DVD.VCD.等各种流媒体协议在内的多种协议格式,并且能够对电 ...

  3. 服务在kubernetes上优雅退出

    在dashboard上,直接操作一下就可以了:将spec.replicas = 0,对应的容器组会自动销毁

  4. mvel语法指南[翻译]

    mvel受到了java语法的启发,但是存在一些根本性的差异,mvel旨在使其成为更有效的表达式语言.比如直接支持集合.数组和字符串匹配,正则表达式的运算操作等. mvel2.x有以下几个部分组成:  ...

  5. Spring Boot-JPA常用注解

  6. 批量kill掉包含某个关键字的进程

    需要把 linux 下符合某一项条件的所有进程 kill 掉,又不能用 killall 直接杀掉某一进程名称包含的所有运行中进程(我们可能只需要杀掉其中的某一类或运行指定参数命令的进程),这个时候我们 ...

  7. OSPF协议介绍及配置

    一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中,而对于这个网 ...

  8. a dynamic resume

    介绍 发现一款开源的动画简历工程, 很是吸引眼球, 分享出来. 技术: 1. npm工程管理 2. vuejs 设计上,将工程分为两个组件: 0.程序入口组件 1. 编辑器组件 2. 简历展示组件 流 ...

  9. C++内存管理4-Windows编程中的堆管理(转)

    1 引言 在大多数Windows应用程序设计中,都几乎不可避免的要对内存进行操作和管理.在进行大尺寸内存的动态分配时尤其显的重要.本文即主要对内存管理中的堆管理技术进行论述. 堆(Heap)实际是位于 ...

  10. ODAC 安裝 (11.2.4)

    1.下载解压 下载ODCA 安装包,下载地址:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.htm ...