婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Go語言Web編程實現Get和Post請求發送與解析的方法詳解

Go語言Web編程實現Get和Post請求發送與解析的方法詳解

熱門標簽:釘釘有地圖標注功能嗎 鄭州亮點科技用的什么外呼系統 黃岡人工智能電銷機器人哪個好 浙江高頻外呼系統多少錢一個月 惠州電銷防封電話卡 阿里云ai電話機器人 建造者2地圖標注 濱州自動電銷機器人排名 汕頭小型外呼系統

本文實例講述了Go語言Web編程實現Get和Post請求發送與解析的方法。分享給大家供大家參考,具體如下:

這是一篇入門文章,通過一個簡單的例子介紹Golang的Web編程主要用到的技術。

文章結構包括:

1. Client-Get 請求
2. Client-Post 請求
3. Server 處理 Get 和 Post 數據

在數據的封裝中,我們部分采用了json,因而本文也涉及到Golang中json的編碼和解碼。

一、Client-Get

復制代碼 代碼如下:
package main
import (
        "fmt"
        "net/url"
        "net/http"
        "io/ioutil"
        "log"
)
func main() {
        u, _ := url.Parse("http://localhost:9001/xiaoyue")
        q := u.Query()
        q.Set("username", "user")
        q.Set("password", "passwd")
        u.RawQuery = q.Encode()
        res, err := http.Get(u.String());
        if err != nil {
              log.Fatal(err) return
        }
        result, err := ioutil.ReadAll(res.Body)
        res.Body.Close()
        if err != nil {
              log.Fatal(err) return
        }
        fmt.Printf("%s", result)
}

二、Client-Post

復制代碼 代碼如下:
package main
import (
        "fmt"
        "net/url"
        "net/http"
        "io/ioutil"
        "log"
        "bytes"
        "encoding/json"
)
type Server struct {
        ServerName string
        ServerIP   string
}
type Serverslice struct {
        Servers []Server
        ServersID  string
}
func main() {
        var s Serverslice
        var newServer Server;
        newServer.ServerName = "Guangzhou_VPN";
        newServer.ServerIP = "127.0.0.1"
        s.Servers = append(s.Servers, newServer)
        s.Servers = append(s.Servers, Server{ServerName: "Shanghai_VPN", ServerIP: "127.0.0.2"})
        s.Servers = append(s.Servers, Server{ServerName: "Beijing_VPN", ServerIP: "127.0.0.3"})
        s.ServersID = "team1"
        b, err := json.Marshal(s)
        if err != nil {
                fmt.Println("json err:", err)
        }
        body := bytes.NewBuffer([]byte(b))
        res,err := http.Post("http://localhost:9001/xiaoyue", "application/json;charset=utf-8", body)
        if err != nil {
                log.Fatal(err)
                return
        }
        result, err := ioutil.ReadAll(res.Body)
        res.Body.Close()
        if err != nil {
                log.Fatal(err)
                return
        }
        fmt.Printf("%s", result)
}

三、Server

復制代碼 代碼如下:
package main
import (
        "fmt"
        "net/http"
        "strings"
        "html"
        "io/ioutil"
        "encoding/json"
)
type Server struct {
        ServerName string
        ServerIP   string
}
type Serverslice struct {
        Servers []Server
        ServersID  string
}
func main() {
        http.HandleFunc("/", handler)
        http.ListenAndServe(":9001", nil)
}
func handler(w http.ResponseWriter, r *http.Request) {
        r.ParseForm() //解析參數,默認是不會解析的
        fmt.Fprintf(w, "Hi, I love you %s", html.EscapeString(r.URL.Path[1:]))
        if r.Method == "GET" {
                fmt.Println("method:", r.Method) //獲取請求的方法
                fmt.Println("username", r.Form["username"])
                fmt.Println("password", r.Form["password"])
                for k, v := range r.Form {
                        fmt.Print("key:", k, "; ")
                        fmt.Println("val:", strings.Join(v, ""))
                }
        } else if r.Method == "POST" {
                result, _:= ioutil.ReadAll(r.Body)
                r.Body.Close()
                fmt.Printf("%s\n", result)
                //未知類型的推薦處理方法
                var f interface{}
                json.Unmarshal(result, f)
                m := f.(map[string]interface{})
                for k, v := range m {
                        switch vv := v.(type) {
                                case string:
                                        fmt.Println(k, "is string", vv)
                                case int:
                                        fmt.Println(k, "is int", vv)
                                case float64:
                                        fmt.Println(k,"is float64",vv)
                                case []interface{}:
                                        fmt.Println(k, "is an array:")
                                        for i, u := range vv {
                                                fmt.Println(i, u)
                                        }
                                default:
                                        fmt.Println(k, "is of a type I don't know how to handle")
                         }
                  }
                 //結構已知,解析到結構體
                 var s Serverslice;
                 json.Unmarshal([]byte(result), s)
                 fmt.Println(s.ServersID);
                 for i:=0; ilen(s.Servers); i++ {
                         fmt.Println(s.Servers[i].ServerName)
                         fmt.Println(s.Servers[i].ServerIP)
                 }
        }
}

希望本文所述對大家Go語言程序設計有所幫助。

您可能感興趣的文章:
  • Go語言中利用http發起Get和Post請求的方法示例
  • 利用dep代替go get獲取私有庫的方法教程
  • Django objects.all()、objects.get()與objects.filter()之間的區別介紹
  • Go語言服務器開發實現最簡單HTTP的GET與POST接口
  • $_GET[''goods_id'']+0 的使用詳解
  • 利用Go語言搭建WebSocket服務端方法示例
  • go的websocket實現原理與用法詳解
  • golang基于websocket實現的簡易聊天室程序
  • Go語言基于Socket編寫服務器端與客戶端通信的實例
  • 使用Node.js和Socket.IO擴展Django的實時處理功能
  • Go get命令使用socket代理的方法

標簽:瀘州 駐馬店 晉中 阿壩 東營 滄州 泰安 昭通

巨人網絡通訊聲明:本文標題《Go語言Web編程實現Get和Post請求發送與解析的方法詳解》,本文關鍵詞  語言,Web,編程,實現,Get,和,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go語言Web編程實現Get和Post請求發送與解析的方法詳解》相關的同類信息!
  • 本頁收集關于Go語言Web編程實現Get和Post請求發送與解析的方法詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    九九久久精品视频 | 专区另类欧美日韩| 日韩欧美一级二级| 91免费观看在线| 99re热这里只有精品视频| 亚洲激情图片小说视频| 亚洲精品中文字幕在线观看| 欧美日韩一区二区欧美激情 | av在线播放成人| 国产在线视频精品一区| 成人免费视频视频在线观看免费 | 午夜精品一区二区三区三上悠亚 | 激情欧美日韩一区二区| 国产激情偷乱视频一区二区三区| 国产精品久久久久久久久动漫 | 久久99精品国产.久久久久久| 精品噜噜噜噜久久久久久久久试看 | 欧美日韩卡一卡二| 欧美激情一区在线| 日韩av电影一区| 欧美伦理电影网| 国产精品素人一区二区| 紧缚奴在线一区二区三区| 色噜噜偷拍精品综合在线| 久久亚洲一区二区三区明星换脸| 中文字幕电影一区| 国产精品久久久久久久久久免费看| 国产+成+人+亚洲欧洲自线| 99久久精品99国产精品| 91蜜桃在线观看| 久久久亚洲午夜电影| 91美女福利视频| 国产成人综合在线| 欧美日韩国产一级| 91精品一区二区三区久久久久久| 国产精品久久久久精k8| 99精品黄色片免费大全| 亚洲三级电影网站| 性欧美大战久久久久久久久| 国产一区二区福利视频| 久久久久88色偷偷免费| 99免费精品在线观看| 免费黄网站欧美| 中文字幕高清不卡| 一区二区三区在线观看视频| 欧美视频精品在线观看| 亚洲精品视频在线看| 久久66热re国产| 久久亚洲二区三区| 国产精品99精品久久免费| 在线观看亚洲精品| 国产成人精品免费看| 日韩丝袜情趣美女图片| 国产亚洲综合色| 美女高潮久久久| 国产精品毛片无遮挡高清| 精品日韩成人av| 亚洲午夜精品网| 日韩精品专区在线影院重磅| 国产精品18久久久久久vr| 久久精品视频免费观看| 中文一区在线播放| 国产精品久久久久久久久图文区 | 狠狠色狠狠色合久久伊人| 666欧美在线视频| 国产肉丝袜一区二区| 中文字幕在线不卡国产视频| 五月综合激情网| 综合久久国产九一剧情麻豆| 日韩欧美黄色影院| 欧美美女一区二区三区| 99国产精品一区| 91视频www| 色婷婷av久久久久久久| 91免费版pro下载短视频| 99国产精品视频免费观看| 波多野结衣一区二区三区| 豆国产96在线|亚洲| hitomi一区二区三区精品| 成人av午夜电影| 色综合久久久久久久久久久| 色呦呦网站一区| 欧美日韩精品一区二区三区四区| 欧美精品三级日韩久久| 91精选在线观看| 精品国产一区二区三区久久久蜜月 | 天堂影院一区二区| 日韩激情一区二区| 国产一区二区福利| 北条麻妃一区二区三区| 99vv1com这只有精品| 国产一本一道久久香蕉| 国产麻豆精品theporn| 国产欧美久久久精品影院| 久久精品视频免费| 欧美变态tickling挠脚心| 91丨九色丨蝌蚪丨老版| 91免费看`日韩一区二区| 日韩视频在线观看一区二区| 国产精品久久久久久久久免费丝袜 | 国产福利一区二区三区视频在线 | 国产精品美日韩| 午夜精品久久久久久久久| 国产一区二区久久| 欧美日韩一区二区三区四区| 中文字幕精品在线不卡| 久久日一线二线三线suv| 欧美va在线播放| 成人一区二区在线观看| av欧美精品.com| 色先锋资源久久综合| 日韩毛片一二三区| 99久久亚洲一区二区三区青草| 国产亚洲综合色| 天天av天天翘天天综合网色鬼国产| 国产一区免费电影| 制服丝袜亚洲精品中文字幕| 亚洲黄一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 欧美久久一二区| 亚洲国产日韩av| 日韩一级精品视频在线观看| 夜夜揉揉日日人人青青一国产精品| 欧美日韩一二三| 国产成人欧美日韩在线电影| 国产精品丝袜一区| 欧美精品在线一区二区三区| 精品一区二区三区的国产在线播放| 久久精品一区八戒影视| 不卡的av中国片| 蜜桃视频一区二区| 亚洲色图视频网| 日韩午夜电影av| 在线观看91视频| 美女网站色91| 最新热久久免费视频| 91成人网在线| 久久国产精品99久久人人澡| 国产99一区视频免费| 免费成人美女在线观看.| 久久精品一区二区三区不卡| 欧美剧情片在线观看| 色呦呦网站一区| 成人精品一区二区三区中文字幕| 久热成人在线视频| 日av在线不卡| 天堂午夜影视日韩欧美一区二区| 精品美女一区二区| 欧美军同video69gay| 欧美综合视频在线观看| av激情综合网| 91欧美一区二区| 亚洲成在人线免费| 亚洲乱码精品一二三四区日韩在线| 337p粉嫩大胆噜噜噜噜噜91av| 欧美电影免费观看高清完整版在| 91麻豆免费在线观看| 欧美日韩国产乱码电影| 日韩精品一区二区三区在线观看| 337p亚洲精品色噜噜狠狠| 欧美大片国产精品| 精品盗摄一区二区三区| 国产精品午夜在线| 一区二区三区精品| 免费成人美女在线观看.| 精品一区二区av| 国产99精品国产| 日本精品视频一区二区| 99久久99久久精品国产片果冻 | 欧美肥胖老妇做爰| 久久精品在这里| 国产午夜精品福利| 一区av在线播放| 久久电影国产免费久久电影| 久久成人麻豆午夜电影| 国产综合久久久久久鬼色| av不卡免费在线观看| 欧美美女喷水视频| 在线视频一区二区三| 午夜欧美视频在线观看| 亚洲国产va精品久久久不卡综合| ...av二区三区久久精品| 亚洲欧洲美洲综合色网| 精品国产精品网麻豆系列| 久久精品视频免费| 欧美老肥妇做.爰bbww| 制服丝袜亚洲精品中文字幕| 国产高清在线观看免费不卡| 91精品视频网| 欧美一区二区视频在线观看2022 | 91麻豆文化传媒在线观看| 99re66热这里只有精品3直播| 国产日产欧美一区| 中文字幕精品一区二区三区精品| 91精品国产综合久久久久久漫画| 99视频在线观看一区三区| 欧美久久婷婷综合色| 日韩欧美一级二级三级| 亚洲国产日日夜夜| 老司机午夜精品|