package main
import (
"bytes"
"encoding/json"
"flag"
"fmt"
"io/ioutil"
"log"
"net/http"
)
type info struct {
EmpCode string `json:"empCode"`
EmpPassword string `json:"empPassword"`
}
func NewInfo(empcode, emppasswd string) *info {
return &info{
EmpCode: empcode,
EmpPassword: emppasswd,
}
}
type PersonInfo struct {
EmpCode string
EmpName string
EmpPhone string
OrgName string
}
type BaseInfo struct {
StatusCode int
Success bool
ErrCode interface{}
ErrMsg interface{}
Body PersonInfo
Msg string
BussinessCategory int64
}
func login(url string, i *info) {
data, err := json.Marshal(i)
if err != nil {
log.Fatal(err)
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(data))
if err != nil {
log.Fatal(err)
}
req.Header.Set("Content-Type", "application/json")
var client = http.DefaultClient
response, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer response.Body.Close()
BodyData, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatal(err)
}
var info = BaseInfo{}
err = json.Unmarshal(BodyData, &info)
if err != nil {
log.Fatal(err)
}
switch info.StatusCode {
case 200:
fmt.Printf("%s 工号: %s 姓名: %s 部门: %s 联系电话: %s\n", info.Msg, info.Body.EmpCode, info.Body.EmpName, info.Body.OrgName, info.Body.EmpPhone)
case 500:
fmt.Printf("登录失败,%s", info.Msg)
return
}
}
func main() {
var url = "http://xxxxxx"
var empCode, emPasswd string
flag.StringVar(&empCode, "c", "", "输入工号:xxxxxx")
flag.StringVar(&emPasswd, "p", "", "输入身份证后六位")
flag.Parse()
ip := NewInfo(empCode, emPasswd)
login(url, ip)
}