加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
apiserver.go 1.27 KB
一键复制 编辑 原始数据 按行查看 历史
xluo 提交于 2017-01-14 09:59 . v0.1
package main
import (
"encoding/json"
"fmt"
"net/http"
)
const ContentType = "text/json"
type apiserver struct {
}
func (s *apiserver) ServeHTTP(w http.ResponseWriter, r *http.Request) {
defer fmt.Println(r.RemoteAddr, r.URL)
var err error
var infos interface{}
mobile := r.FormValue("mobile")
code := r.FormValue("code")
serviceName := r.FormValue("service")
uid := r.FormValue("uid")
sms.SetServiceConfig(serviceName)
switch r.URL.String() {
case "/send":
err = sms.Send(mobile)
case "/checkcode":
err = sms.CheckCode(mobile, code)
case "/setuid":
err = sms.SetUid(mobile, uid)
case "/deluid":
err = sms.DelUid(mobile, uid)
case "/info":
infos, err = sms.Info(mobile)
default:
err = fmt.Errorf("%s", "您访问的api不存在")
}
s.echoJson(w, err, infos)
}
func (s *apiserver) echoJson(w http.ResponseWriter, err error, info interface{}) {
var result Result
switch sms.Config.Outformat {
case "mobcent":
result = &Result_mobcent{}
default:
result = &Result_default{}
}
//对象输出格式化
result.Format(err, info)
//json对象
str, _ := json.Marshal(result)
w.Header().Set("Content-Type", ContentType)
w.Write(str)
}
func Apiserver() {
fmt.Println("Start Smscode Server...")
http.ListenAndServe(config.Bind, &apiserver{})
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化