Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeJSON ¶
DecodeJSON decodes a json value from r.
func Do ¶
Do is a convenient function to send request and control redirect and debug options. If `Request.Resp` is provided, it will be used as destination to try to unmarshal the response body.
Trade-off was taken to balance simplicity and convenience.
For more powerful controls of a http request and handy utilities, you may take a look at the awesome library `https://github.com/go-resty/resty/`.
func IsJSONType ¶
IsJSONType method is to check JSON content type or not.
Types ¶
type Request ¶
type Request struct { // Req should be a fully prepared http Request to sent, if not nil, // the following `Method`, `URL`, `Params`, `JSON`, `XML`, `Form`, `Body` // will be ignored. // // If Req is nil, it will be filled using the following data `Method`, // `URL`, `Params`, `JSON`, `XML`, `Form`, `Body` to construct the `http.Request`. // // When building http body, the priority is JSON > XML > Form > Body. Req *http.Request // Method specifies the verb for the http request, it's optional, // default is "GET". Method string // URL specifies the url to make the http request. // It's required if Req is nil. URL string // Params specifies optional params to merge with URL, it must be one of // the following types: // - map[string]string // - map[string][]string // - map[string]interface{} // - url.Values Params interface{} // JSON specifies optional body data for request which can take body, // the content-type will be "application/json", it must be one of // the following types: // - io.Reader // - []byte (will be wrapped with bytes.NewReader) // - string (will be wrapped with strings.NewReader) // - interface{} (will be marshaled with json.Marshal) JSON interface{} // XML specifies optional body data for request which can take body, // the content-type will be "application/xml", it must be one of // the following types: // - io.Reader // - []byte (will be wrapped with bytes.NewReader) // - string (will be wrapped with strings.NewReader) // - interface{} (will be marshaled with xml.Marshal) XML interface{} // Form specifies optional body data for request which can take body, // the content-type will be "application/x-www-form-urlencoded", // it must be one of the following types: // - io.Reader // - []byte (will be wrapped with bytes.NewReader) // - string (will be wrapped with strings.NewReader) // - url.Values (will be encoded and wrapped as io.Reader) // - map[string]string (will be converted to url.Values) // - map[string][]string (will be converted to url.Values) // - map[string]interface{} (will be converted to url.Values) Form interface{} // Body specifies optional body data for request which can take body, // the content-type will be detected from the content (may be incorrect), // it should be one of the following types: // - io.Reader // - []byte (will be wrapped with bytes.NewReader) // - string (will be wrapped with strings.NewReader) Body interface{} // Headers will be copied to the request before sent. // // If "Content-Type" presents, it will replace the default value // set by `JSON`, `XML`, `Form`, or `Body`. Headers map[string]string // Resp specifies an optional destination to unmarshal the response data. // if `Unmarshal` is not provided, the header "Content-Type" will be used to // detect XML content, else `json.Unmarshal` will be used. Resp interface{} // Unmarshal specifies an optional function to unmarshal the response data. Unmarshal func([]byte, interface{}) error // Context specifies an optional context.Context to use with http request. Context context.Context // Timeout specifies an optional timeout of the http request, if // timeout > 0, the request will be attached an timeout context.Context. // `Timeout` takes higher priority than `Context`, it both available, only // `Timeout` takes effect. Timeout time.Duration // Client specifies an optional http.Client to do the request, instead of // the default http client. Client *http.Client // DisableRedirect tells the http client don't follow response redirection. DisableRedirect bool // DumpRequest makes the http request being logged before sent. DumpRequest bool // DumpResponse makes the http response being logged after received. DumpResponse bool // RaiseForStatus tells Do to report an error if the response // status code >= 400. The error will be formatted as "unexpected status: <STATUS>". RaiseForStatus bool }
Request represents a request and options to send with the Do function.
Click to show internal directories.
Click to hide internal directories.