赞
踩
client端
- package main
- import (
- "bytes"
- "fmt"
- "io/ioutil"
- "net/http"
- "net/url"
- )
- func main() {
- request_url := "http://localhost:8080/"
- // 要 POST的 参数
- form := url.Values{
- "name": {"xiaoming"},
- "address": {"beijing"},
- "subject": {"Hello"},
- "from": {"china"},
- }
- // func Post(url string, bodyType string, body io.Reader) (resp *Response, err error) {
- //对form进行编码
- body := bytes.NewBufferString(form.Encode())
- rsp, err := http.Post(request_url, "application/x-www-form-urlencoded", body)
- if err != nil {
- panic(err)
- }
- defer rsp.Body.Close()
- body_byte, err := ioutil.ReadAll(rsp.Body)
- if err != nil {
- panic(err)
- }
- fmt.Println(string(body_byte))
- }
server端
- package main
-
- import (
- "fmt"
- "log"
- "net/http"
- )
-
- func main() {
- http.HandleFunc("/", ExampleHandler)
- if err := http.ListenAndServe(":8080", nil); err != nil {
- log.Fatal(err)
- }
- }
-
- func ExampleHandler(w http.ResponseWriter, r *http.Request) {
-
- // Double check it's a post request being made
- if r.Method != http.MethodPost {
- w.WriteHeader(http.StatusMethodNotAllowed)
- fmt.Fprintf(w, "invalid_http_method")
- return
- }
-
- // Must call ParseForm() before working with data
- r.ParseForm()
-
- // Log all data. Form is a map[]
- log.Println(r.Form)
-
- // Print the data back. We can use Form.Get() or Form["name"][0]
- fmt.Fprintf(w, "Hello "+r.Form.Get("name"))
- }
-
-
- //可以直接命令行请求
-
- //curl -X POST http://localhost:8080 -d "name=zhangsan"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。