初始化项目
This commit is contained in:
47
trunk/goutil/smsUtil/sender/httpSender/httpSender.go
Normal file
47
trunk/goutil/smsUtil/sender/httpSender/httpSender.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package httpSender
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
// "goutil/debugUtil"
|
||||
"goutil/webUtil"
|
||||
)
|
||||
|
||||
// 实现Sender相关接口
|
||||
|
||||
type httpClient struct{}
|
||||
|
||||
// 发送Requester
|
||||
func (this *httpClient) Send(req Requester) (rspn []byte, err error) {
|
||||
if req.GetMethod() == "POST" {
|
||||
rspn, err = this.post(req)
|
||||
return
|
||||
} else {
|
||||
err = errors.New(fmt.Sprintf("request: unsupport method (%s)", req.GetMethod()))
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 发送 post 请求
|
||||
func (*httpClient) post(req Requester) ([]byte, error) {
|
||||
url := req.GetUrl()
|
||||
bytes := req.GetData()
|
||||
|
||||
// debugUtil.Printf("httpClient-POST %s\r\n%v\n", url, string(bytes))
|
||||
|
||||
rspn, err := webUtil.PostByteData(url, bytes, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// body := []byte("{\"result\":0,\"errmsg\":\"OK\",\"ext\":\"hello-world\",\"sid\":\"6:59106203271444582828\",\"fee\":1}")
|
||||
|
||||
// debugUtil.Printf("httpClient-Res: %s", string(rspn))
|
||||
|
||||
return rspn, nil
|
||||
}
|
||||
|
||||
func New() *httpClient {
|
||||
return new(httpClient)
|
||||
}
|
||||
8
trunk/goutil/smsUtil/sender/httpSender/requester.go
Normal file
8
trunk/goutil/smsUtil/sender/httpSender/requester.go
Normal file
@@ -0,0 +1,8 @@
|
||||
package httpSender
|
||||
|
||||
// 请求
|
||||
type Requester interface {
|
||||
GetMethod() string
|
||||
GetUrl() string
|
||||
GetData() []byte
|
||||
}
|
||||
7
trunk/goutil/smsUtil/sender/httpSender/sender.go
Normal file
7
trunk/goutil/smsUtil/sender/httpSender/sender.go
Normal file
@@ -0,0 +1,7 @@
|
||||
package httpSender
|
||||
|
||||
// 发送器
|
||||
// 用于发送Requester
|
||||
type Sender interface {
|
||||
Send(req Requester) ([]byte, error)
|
||||
}
|
||||
Reference in New Issue
Block a user