Browse Source

feature add HTTP std method request

ls 2 years ago
parent
commit
a867be57ee
2 changed files with 80 additions and 2 deletions
  1. 78 0
      xhttp/client.go
  2. 2 2
      xhttp/option.go

+ 78 - 0
xhttp/client.go

@@ -86,6 +86,18 @@ func Get(uri string, opt RequestOption) (msg Message, err error) {
 	return
 }
 
+// Head HTTP request HEAD
+func Head(uri string, opt RequestOption) (msg Message, err error) {
+	var res *http.Response
+	if res, err = newRequest("HEAD", uri, nil, opt); err != nil {
+		return
+	}
+
+	defer res.Body.Close()
+	//msg, err = readBody(res)
+	return
+}
+
 // GetJSON HTTP request GET, response JSON
 func GetJSON(v interface{}, uri string, opt RequestOption) (msg Message, err error) {
 	var res *http.Response
@@ -128,3 +140,69 @@ func Post(uri string, body io.Reader, opt RequestOption) (msg Message, err error
 	msg, err = readBody(res)
 	return
 }
+
+// Put HTTP request PUT
+func Put(uri string, body io.Reader, opt RequestOption) (msg Message, err error) {
+	var res *http.Response
+	if res, err = newRequest("PUT", uri, body, opt); err != nil {
+		return
+	}
+	defer res.Body.Close()
+	msg, err = readBody(res)
+	return
+}
+
+// Delete HTTP request DELETE
+func Delete(uri string, body io.Reader, opt RequestOption) (msg Message, err error) {
+	var res *http.Response
+	if res, err = newRequest("DELETE", uri, body, opt); err != nil {
+		return
+	}
+	defer res.Body.Close()
+	msg, err = readBody(res)
+	return
+}
+
+// Connect HTTP request CONNECT
+func Connect(uri string, body io.Reader, opt RequestOption) (msg Message, err error) {
+	var res *http.Response
+	if res, err = newRequest("CONNECT", uri, body, opt); err != nil {
+		return
+	}
+	defer res.Body.Close()
+	msg, err = readBody(res)
+	return
+}
+
+// Options HTTP request OPTIONS
+func Options(uri string, body io.Reader, opt RequestOption) (msg Message, err error) {
+	var res *http.Response
+	if res, err = newRequest("OPTIONS", uri, body, opt); err != nil {
+		return
+	}
+	defer res.Body.Close()
+	msg, err = readBody(res)
+	return
+}
+
+// Trace HTTP request TRACE
+func Trace(uri string, body io.Reader, opt RequestOption) (msg Message, err error) {
+	var res *http.Response
+	if res, err = newRequest("TRACE", uri, body, opt); err != nil {
+		return
+	}
+	defer res.Body.Close()
+	msg, err = readBody(res)
+	return
+}
+
+// Patch HTTP request PATCH
+func Patch(uri string, body io.Reader, opt RequestOption) (msg Message, err error) {
+	var res *http.Response
+	if res, err = newRequest("PATCH", uri, body, opt); err != nil {
+		return
+	}
+	defer res.Body.Close()
+	msg, err = readBody(res)
+	return
+}

+ 2 - 2
xhttp/option.go

@@ -77,8 +77,8 @@ func (r *RequestOption) AcceptEncodingGZIP() {
 	r.Headers[AcceptEncoding] = "gzip, deflate, br"
 }
 
-// SetContentTypeMultipart Content-Type multipart
-func (r *RequestOption) SetContentTypeMultipart(v string) {
+// SetContentType set Content-Type
+func (r *RequestOption) SetContentType(v string) {
 	r.Headers[ContentType] = v
 }