diff --git a/client/response.go b/client/response.go index 5c7cefe..57a24c6 100644 --- a/client/response.go +++ b/client/response.go @@ -22,12 +22,15 @@ type Response struct { } // JoinURL joins base response URL and provided relative URL. -func (r *Response) JoinURL(relativeURL string) (*url.URL, error) { - joinedURL, err := r.Request.URL.Parse(relativeURL) +// DEPRECATED: Use response.Request.URL.Parse(relativeURL) instead. +func (r *Response) JoinURL(relativeURL string) string { + parsedRelativeURL, err := url.Parse(relativeURL) if err != nil { - return nil, err + return "" } - return joinedURL, nil + + joinedURL := r.Request.URL.ResolveReference(parsedRelativeURL) + return joinedURL.String() } // IsHTML checks if response content is HTML by looking content-type header diff --git a/client/response_test.go b/client/response_test.go index cf9accc..4a50cfe 100644 --- a/client/response_test.go +++ b/client/response_test.go @@ -9,7 +9,6 @@ func TestResponse_JoinURL(t *testing.T) { req, _ := NewRequest("GET", "https://localhost.com/test/a.html", nil) resp := Response{Request: req} - joinedURL, err := resp.JoinURL("/source") - assert.NoError(t, err) - assert.Equal(t, "https://localhost.com/source", joinedURL.String()) + joinedURL := resp.JoinURL("/source") + assert.Equal(t, "https://localhost.com/source", joinedURL) } diff --git a/geziyor_test.go b/geziyor_test.go index d15fa38..bfea4fd 100644 --- a/geziyor_test.go +++ b/geziyor_test.go @@ -80,7 +80,7 @@ func quotesParse(g *geziyor.Geziyor, r *client.Response) { // Next Page if href, ok := r.HTMLDoc.Find("li.next > a").Attr("href"); ok { - absoluteURL, _ := r.JoinURL(href) + absoluteURL, _ := r.Request.URL.Parse(href) g.Get(absoluteURL.String(), quotesParse) } } @@ -97,7 +97,7 @@ func TestAllLinks(t *testing.T) { g.Exports <- []string{r.Request.URL.String()} r.HTMLDoc.Find("a").Each(func(i int, s *goquery.Selection) { if href, ok := s.Attr("href"); ok { - absoluteURL, _ := r.JoinURL(href) + absoluteURL, _ := r.Request.URL.Parse(href) g.Get(absoluteURL.String(), g.Opt.ParseFunc) } }) @@ -333,7 +333,7 @@ func BenchmarkWhole(b *testing.B) { g.Exports <- []string{r.Request.URL.String()} r.HTMLDoc.Find("a").Each(func(i int, s *goquery.Selection) { if href, ok := s.Attr("href"); ok { - absoluteURL, _ := r.JoinURL(href) + absoluteURL, _ := r.Request.URL.Parse(href) g.Get(absoluteURL.String(), g.Opt.ParseFunc) } })