mirror of
https://github.com/httprunner/httprunner.git
synced 2026-08-28 11:36:56 +08:00
fix: omit pseudo header names for HTTP/1, e.g. :authority
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
# Release History
|
# Release History
|
||||||
|
|
||||||
|
## v0.6.2 (2022-02-18)
|
||||||
|
|
||||||
|
- fix: omit pseudo header names for HTTP/1, e.g. :authority
|
||||||
|
|
||||||
## v0.6.1 (2022-02-17)
|
## v0.6.1 (2022-02-17)
|
||||||
|
|
||||||
- fix: set request Content-Type for posting json only when not specified
|
- fix: set request Content-Type for posting json only when not specified
|
||||||
|
|||||||
@@ -628,6 +628,7 @@ func (r *caseRunner) runStepRequest(step *TStep) (stepResult *stepData, err erro
|
|||||||
ProtoMinor: 1,
|
ProtoMinor: 1,
|
||||||
Close: true, // prevent the connection from being re-used
|
Close: true, // prevent the connection from being re-used
|
||||||
}
|
}
|
||||||
|
var contentType string
|
||||||
|
|
||||||
// prepare request headers
|
// prepare request headers
|
||||||
if len(step.Request.Headers) > 0 {
|
if len(step.Request.Headers) > 0 {
|
||||||
@@ -636,12 +637,19 @@ func (r *caseRunner) runStepRequest(step *TStep) (stepResult *stepData, err erro
|
|||||||
return stepResult, errors.Wrap(err, "parse headers failed")
|
return stepResult, errors.Wrap(err, "parse headers failed")
|
||||||
}
|
}
|
||||||
for key, value := range headers {
|
for key, value := range headers {
|
||||||
|
// omit pseudo header names for HTTP/1, e.g. :authority, :method, :path, :scheme
|
||||||
|
if strings.HasPrefix(key, ":") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
req.Header.Add(key, value)
|
req.Header.Add(key, value)
|
||||||
}
|
|
||||||
}
|
// prepare content length
|
||||||
if length := req.Header.Get("Content-Length"); length != "" {
|
if strings.EqualFold(key, "Content-Length") && value != "" {
|
||||||
if l, err := strconv.ParseInt(length, 10, 64); err == nil {
|
contentType = value
|
||||||
req.ContentLength = l
|
if l, err := strconv.ParseInt(value, 10, 64); err == nil {
|
||||||
|
req.ContentLength = l
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -689,7 +697,6 @@ func (r *caseRunner) runStepRequest(step *TStep) (stepResult *stepData, err erro
|
|||||||
var dataBytes []byte
|
var dataBytes []byte
|
||||||
switch vv := data.(type) {
|
switch vv := data.(type) {
|
||||||
case map[string]interface{}:
|
case map[string]interface{}:
|
||||||
contentType := req.Header.Get("Content-Type")
|
|
||||||
if strings.HasPrefix(contentType, "application/x-www-form-urlencoded") {
|
if strings.HasPrefix(contentType, "application/x-www-form-urlencoded") {
|
||||||
// post form data
|
// post form data
|
||||||
formData := make(url.Values)
|
formData := make(url.Values)
|
||||||
@@ -703,7 +710,7 @@ func (r *caseRunner) runStepRequest(step *TStep) (stepResult *stepData, err erro
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return stepResult, err
|
return stepResult, err
|
||||||
}
|
}
|
||||||
if req.Header.Get("Content-Type") == "" {
|
if contentType == "" {
|
||||||
req.Header.Set("Content-Type", "application/json; charset=utf-8")
|
req.Header.Set("Content-Type", "application/json; charset=utf-8")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user