mirror of
https://github.com/zeromicro/go-zero.git
synced 2025-01-23 09:00:20 +08:00
This commit is contained in:
parent
238c92aaa9
commit
cbcacf31c1
@ -748,7 +748,15 @@ func (u *Unmarshaler) processFieldTextUnmarshaler(fieldType reflect.Type, value
|
|||||||
return true, tval.UnmarshalText(mv)
|
return true, tval.UnmarshalText(mv)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//[]byte
|
||||||
|
if fieldType.Kind() == reflect.Slice && fieldType.Elem().Kind() == reflect.Uint8 {
|
||||||
|
b, err := base64.StdEncoding.DecodeString(mapValue.(string))
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
value.SetBytes(b)
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package httpx
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
@ -515,6 +516,25 @@ func TestParseJsonBody(t *testing.T) {
|
|||||||
assert.Equal(t, "apple", v[0].Name)
|
assert.Equal(t, "apple", v[0].Name)
|
||||||
assert.Equal(t, 18, v[0].Age)
|
assert.Equal(t, 18, v[0].Age)
|
||||||
})
|
})
|
||||||
|
t.Run("bytes field", func(t *testing.T) {
|
||||||
|
type v struct {
|
||||||
|
Signature []byte `json:"signature,optional"`
|
||||||
|
}
|
||||||
|
v1 := v{
|
||||||
|
Signature: []byte{0x01, 0xff, 0x00},
|
||||||
|
}
|
||||||
|
body, _ := json.Marshal(v1)
|
||||||
|
t.Logf("body:%s", string(body))
|
||||||
|
r := httptest.NewRequest(http.MethodPost, "/", strings.NewReader(string(body)))
|
||||||
|
r.Header.Set(ContentType, header.JsonContentType)
|
||||||
|
var v2 v
|
||||||
|
err := ParseJsonBody(r, &v2)
|
||||||
|
if assert.NoError(t, err) {
|
||||||
|
assert.Greater(t, len(v2.Signature), 0)
|
||||||
|
}
|
||||||
|
t.Logf("%x", v2.Signature)
|
||||||
|
assert.EqualValues(t, v1.Signature, v2.Signature)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestParseRequired(t *testing.T) {
|
func TestParseRequired(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user