golang之Http协议Get请求
package main
import (
"net/http"
"fmt"
"io/ioutil"
)
func main() {
get()
}
func get(){
resp,err := http.Get("http://www.baidu.com")
if err!=nil {
//如果没有获取到url数据 会返回一个error 类型错误
fmt.Println("error=",err,";")
}
defer resp.Body.Close()
//提取响应头数据
b,err:=ioutil.ReadAll(resp.Body)
//将字节切片转成成String 输出
fmt.Print(string(b))
}
获取百度网页数据 转化成string的形式输出出来.
defer 关键字是总会执行,类似于java try catch finally 代码块
golang之Http协议Post请求
import (
"net/http"
"net/url"
"fmt"
"io/ioutil"
)
func main() {
post()
}
func post() {
//这是一个Post 参数会被返回的地址
strinUrl:="http://localhost:8080/aaa"
resopne,err:= http.PostForm(strinUrl,url.Values{"num":{"456"}})
if err !=nil {
fmt.Println("err=",err)
}
defer func() {
resopne.Body.Close()
fmt.Println("finish")
}()
//提取数据
body,err:=ioutil.ReadAll(resopne.Body)
if err!=nil {
fmt.Println(" post err=",err)
}
fmt.Println(string(body))
}
运行结果:运行的结果;Key = num, Value = [456]
服务器是我用java语言编写的,服务器会监听8080端口,将客户端提交的数据返回给客户端。goHttp代码量相对于java来讲还是很少的。
通过golang的ioutil包可以直接Http响应头提取到切片[]slice 里面。最后将[]byte 转成string输出