golang服務端解析客戶端發來的post數據

package main

import (

    "fmt"

    "log"

    "net/http"

)

/*NewBaseJsonBean用於創建一個struct對象:*/

type BaseJsonBean struct {  

    Code    int         `json:"code"`  

    Data    interface{} `json:"data"`  

    Message string      `json:"message"`  

}  

func NewBaseJsonBean() *BaseJsonBean {  

    return &BaseJsonBean{}  

}

func main() {

    http.HandleFunc("/", hander)

    err := http.ListenAndServe("localhost:9090", nil)

    if err != nil {

        log.Fatal("ListenAndServe: ", err)

    }

}

func hander(w http.ResponseWriter, r *http.Request){

    //path := r.URL.Path

    //fmt.Fprintf(w, "Hello world")

    //fmt.Println("path:", path)

    //fmt.Println("method:", r.Method)

    //fmt.Println("username:", r.PostFormValue("username"))  



/* 返回json格式的數據 直接解析POST   
   curl -d "username=aa&passwd=123" 127.0.0.1:9090 */

    r.ParseForm()  


    //r.FormValue("username")//這樣使用也沒毛病

    //r.FormValue("password")//這樣使用也沒毛病



    param_username, found1 := r.Form["username"]  

    param_password, found2 := r.Form["password"]  

    fmt.Println("username:", param_username)  

    fmt.Println("password:", param_password)

    if !(found1 && found2) {  

        fmt.Fprint(w, "請勿非法訪問")  

        return  

    }  

    result := NewBaseJsonBean()  

    username := param_username[0]  

    password := param_password[0]  

    if username == "aa" && password == "123" {  

        result.Code = 100  

        result.Message = "登錄成功"  

    } else {  

        result.Code = 101  

        result.Message = "用戶名或密碼不正確"  

    }  

  

    //向客戶端返回JSON數據  

    bytes, _ := json.Marshal(result)  

    fmt.Fprint(w, string(bytes))  

}



/* 直接解析POST curl -d '{"username":"aa"}' 127.0.0.1:9090 */

var mapData map[string]interface{}

    body, _ := ioutil.ReadAll(r.Body)

    json.Unmarshal(body, &mapData)

    domain := mapData["domain"].(string)//通過.(string)轉換成string類型

    log.Println(domain)

    if len(domain) != 0 {

        log.Println("輸入合法")

    } else {

        log.Println("輸入不合法")

    }

 

發佈了53 篇原創文章 · 獲贊 15 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章