Golang发送post表单请求
发布时间:2020-12-16 18:54:50 所属栏目:大数据 来源:网络整理
导读:先写一个可以接收post请求的服务器: package mainimport ("fmt""net/http")func main() {http.HandleFunc("/postpage",func(w http.ResponseWriter,r *http.Request) {//接受post请求,然后打印表单中key和value字段的值if r.Method == "POST" {var (key st
先写一个可以接收post请求的服务器: package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/postpage",func(w http.ResponseWriter,r *http.Request) { //接受post请求,然后打印表单中key和value字段的值 if r.Method == "POST" { var ( key string = r.PostFormValue("key") value string = r.PostFormValue("value") ) fmt.Printf("key is : %sn",key) fmt.Printf("value is: %sn",value) } }) err := http.ListenAndServe(":80",nil) if err != nil { fmt.Println(err.Error()) return } }
然后我们使用net/http包来发送post请求: package main import ( "fmt" "net/http" "net/url" ) func main() { //这里添加post的body内容 data := make(url.Values) data["key"] = []string{"this is key"} data["value"] = []string{"this is value"} //把post表单发送给目标服务器 res,err := http.PostForm("http://127.0.0.1/postpage",data) if err != nil { fmt.Println(err.Error()) return } defer res.Body.Close() fmt.Println("post send success") }
如果你不想用现成的包,那么下面这段代码就是直接通过HTTP协议实现post请求,运行效果和上面这段代码一样: package main import ( "fmt" "net" ) func main() { //因为post方法属于HTTP协议,HTTP协议以TCP为基础,所以先建立一个 //TCP连接,通过这个TCP连接来发送我们的post请求 conn,err := net.Dial("tcp","127.0.0.1:80") if err != nil { fmt.Println(err.Error()) return } defer conn.Close() //构造post请求 var post string post += "POST /postpage HTTP/1.1rn" post += "Content-Type: application/x-www-form-urlencodedrn" post += "Content-Length: 37rn" post += "Connection: keep-alivern" post += "Accept-Language: zh-CN,zh;q=0.8,en;q=0.6rn" post += "rn" post += "key=this is key&value=this is valuern" if _,err := conn.Write([]byte(post)); err != nil { fmt.Println(err.Error()) return } fmt.Println("post send success.") }
如果转载请注明出处:http://blog.csdn.net/gophers/article/details/22870185 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 用于高DPI Windows的Delphi Firemonkey Scale
- 通过VB显示QQ网页登录时代校验码图,并显示在picturebox控件
- java – Spring Boot YML和StandAlone Tomcat 8 Server
- Delphi XE2 之 FireMonkey 入门(5) - TAlphaColor
- 用Golang写一个搜索引擎(0xFF)
- 在perl中使用错误但没有堆栈跟踪的正确方法是什么?
- Delphi 进程操作
- delphi – 为什么在选择多个项目时会从Object Inspector中隐
- Golang从零开始(一) 编译环境搭建(Ubuntu17)
- 测试 – Spock可以窥探真实物体吗?