go实践一 模拟http请求

编辑一个 testhttp.go 文件,内容如下

使用 go run testhttp.go 运行该文件即可

package main

import (
	"fmt"               //fmt 包提供了打印函数将数据以字符串形式输出
	"io"  	             //io 包提供了 io.Reader 和 io.Writer 接口,分别用于数据的输入和输出
	"os"                 //os包提供了操作系统的函数,设计向Unix风格,但是错误处理是go风格,当os包使用时,如果失败之后返回错误类型而不是错误数量.
	"net/http"          //net/http包提供HTTP客户端和服务器实现。Get,Head,Post和PostForm发出HTTP(或HTTPS)请求
)

//这里使用go 来搭建一个web服务器
func main(){
	testhttp()
}

//http测试
func testhttp(){
	//生成client 参数为默认
	client := &http.Client{}

	//生成要访问的url
	url := "http://baidu.com"

	//http请求
	request,error := http.NewRequest("GET",url,nil)

	if(error != nil){
		panic(error)
	}

	//处理返回结果
	response,_ := client.Do(request)

	//将结果定位到标准输出 也可以直接打印出来 或者定位到其他地方进行相应的处理
	stdout := os.Stdout
	_,error1 := io.Copy(stdout,response.Body)

	//返回的状态码
	status := response.StatusCode
	fmt.Printf("状态码是%v\n", status)
	fmt.Printf("错误信息是%v\n", error1)
	fmt.Printf("response是%v\n", response)
	fmt.Printf("request是%v\n", request)
}

运行结果:

[root@localhost web]# go run testhttp.go
<html>
<meta http-equiv="refresh" content="0;url=http://www.baidu.com/">
</html>
状态码是200
错误信息是<nil>
response是&{200 OK 200 HTTP/1.1 1 1 map[Accept-Ranges:[bytes] Cache-Control:[max-age=86400] Connection:[Keep-Alive] Content-Length:[81] Content-Type:[text/html] Date:[Sat, 06 Jul 2019 03:08:02 GMT] Etag:["51-47cf7e6ee8400"] Expires:[Sun, 07 Jul 2019 03:08:02 GMT] Last-Modified:[Tue, 12 Jan 2010 13:48:00 GMT] Server:[Apache]] 0xc000050700 81 [] false false map[] 0xc0000c8000 <nil>}
request是&{GET http://baidu.com HTTP/1.1 1 1 map[] <nil> <nil> 0 [] false baidu.com map[] map[] <nil> map[]   <nil> <nil> <nil> <nil>}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值