Browse Source

fix render http[get] params error

jomenxiao 8 năm trước cách đây
mục cha
commit
3f95180c98
2 tập tin đã thay đổi với 13 bổ sung4 xóa
  1. 5 1
      pkg/api/render.go
  2. 8 3
      pkg/util/url.go

+ 5 - 1
pkg/api/render.go

@@ -10,7 +10,11 @@ import (
 )
 
 func RenderToPng(c *middleware.Context) {
-	queryReader := util.NewUrlQueryReader(c.Req.URL)
+	queryReader, err := util.NewUrlQueryReader(c.Req.URL)
+	if err != nil {
+		c.Handle(400, "Rander parameters error", err)
+		return
+	}
 	queryParams := fmt.Sprintf("?%s", c.Req.URL.RawQuery)
 
 	renderOpts := &renderer.RenderOpts{

+ 8 - 3
pkg/util/url.go

@@ -9,10 +9,15 @@ type UrlQueryReader struct {
 	values url.Values
 }
 
-func NewUrlQueryReader(url *url.URL) *UrlQueryReader {
-	return &UrlQueryReader{
-		values: url.Query(),
+func NewUrlQueryReader(urlInfo *url.URL) (*UrlQueryReader, error) {
+	u, err := url.ParseQuery(urlInfo.String())
+	if err != nil {
+		return nil, err
 	}
+
+	return &UrlQueryReader{
+		values: u,
+	}, nil
 }
 
 func (r *UrlQueryReader) Get(name string, def string) string {