ParseURL -> ParsedURL name; add method Set Get ParsedURL

This commit is contained in:
huangsimin 2018-11-21 15:21:01 +08:00
parent 137121ee59
commit 1d2bbcd22f
3 changed files with 25 additions and 12 deletions

View File

@ -13,7 +13,7 @@ func buildBodyRequest(wf *Workflow) *http.Request {
contentType := "" contentType := ""
if wf.Body.IOBody() == nil { if wf.Body.IOBody() == nil {
req, err = http.NewRequest(wf.Method, wf.GetStringURL(), nil) req, err = http.NewRequest(wf.Method, wf.GetRawURL(), nil)
} else { } else {
var bodybuf *bytes.Buffer var bodybuf *bytes.Buffer
switch wf.Body.IOBody().(type) { switch wf.Body.IOBody().(type) {
@ -24,7 +24,7 @@ func buildBodyRequest(wf *Workflow) *http.Request {
default: default:
panic(errors.New("the type is not exist, type is" + reflect.TypeOf(wf.Body.IOBody).String())) panic(errors.New("the type is not exist, type is" + reflect.TypeOf(wf.Body.IOBody).String()))
} }
req, err = http.NewRequest(wf.Method, wf.GetStringURL(), bodybuf) req, err = http.NewRequest(wf.Method, wf.GetRawURL(), bodybuf)
} }
if err != nil { if err != nil {

View File

@ -93,11 +93,14 @@ type BasicAuth struct {
// Session 的基本方法 // Session 的基本方法
type Session struct { type Session struct {
auth *BasicAuth
body IBody
client *http.Client client *http.Client
transport *http.Transport
cookiejar http.CookieJar cookiejar http.CookieJar
body IBody
auth *BasicAuth transport *http.Transport
Header http.Header Header http.Header
Query url.Values Query url.Values
@ -122,7 +125,7 @@ const (
// TypeForm PostForm类型 // TypeForm PostForm类型
TypeForm = TypeURLENCODED TypeForm = TypeURLENCODED
// TypeStream application/octet-stream 类型 binary // TypeStream application/octet-stream 只能提交一个二进制流, 很少用
TypeStream = "application/octet-stream" TypeStream = "application/octet-stream"
// TypeFormData 类型 // TypeFormData 类型
@ -281,7 +284,6 @@ func (ses *Session) SetCookies(u *url.URL, cookies []*http.Cookie) {
// Cookies 返回 Cookies // Cookies 返回 Cookies
func (ses *Session) Cookies(u *url.URL) []*http.Cookie { func (ses *Session) Cookies(u *url.URL) []*http.Cookie {
return ses.cookiejar.Cookies(u) return ses.cookiejar.Cookies(u)
} }

View File

@ -22,7 +22,7 @@ func NewWorkflow(ses *Session, u string) *Workflow {
wf := &Workflow{} wf := &Workflow{}
wf.SwitchSession(ses) wf.SwitchSession(ses)
wf.SetURL(u) wf.SetRawURL(u)
wf.Body = NewBody() wf.Body = NewBody()
wf.Header = make(http.Header) wf.Header = make(http.Header)
@ -94,14 +94,25 @@ func (wf *Workflow) DelCookie(name interface{}) *Workflow {
return nil return nil
} }
// GetStringURL 获取url的string形式 // GetParsedURL 获取url的string形式
func (wf *Workflow) GetStringURL() string { func (wf *Workflow) GetParsedURL() *url.URL {
return wf.ParsedURL
}
// SetParsedURL 获取url的string形式
func (wf *Workflow) SetParsedURL(u *url.URL) *Workflow {
wf.ParsedURL = u
return wf
}
// GetRawURL 获取url的string形式
func (wf *Workflow) GetRawURL() string {
u := strings.Split(wf.ParsedURL.String(), "?")[0] + "?" + wf.GetCombineQuery().Encode() u := strings.Split(wf.ParsedURL.String(), "?")[0] + "?" + wf.GetCombineQuery().Encode()
return u return u
} }
// SetURL 设置 url // SetRawURL 设置 url
func (wf *Workflow) SetURL(srcURL string) *Workflow { func (wf *Workflow) SetRawURL(srcURL string) *Workflow {
purl, err := url.ParseRequestURI(srcURL) purl, err := url.ParseRequestURI(srcURL)
if err != nil { if err != nil {
panic(err) panic(err)