Adding proper use of url package in Http package and more fixes
This commit is contained in:
parent
20b1904f2d
commit
ebb45fff90
1 changed files with 27 additions and 17 deletions
38
imdb.go
38
imdb.go
|
@ -20,15 +20,14 @@ import (
|
|||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
//"log"
|
||||
"net/http"
|
||||
"strings"
|
||||
"net/url"
|
||||
)
|
||||
|
||||
//=======================================================================
|
||||
// Const
|
||||
//=======================================================================
|
||||
const baseUrl string = "http://www.omdbapi.com/?"
|
||||
const baseUrl string = "http://www.omdbapi.com"
|
||||
const plot string = "full"
|
||||
const tomatoes string = "true"
|
||||
|
||||
|
@ -165,20 +164,31 @@ func omdbApiRequest(s string, i string, t string, y string) (resp *http.Response
|
|||
//t = Title Parameter, if this is != nil then its a getMovieByTitle
|
||||
//y = Year Parameter, Optional data for s and t search
|
||||
//var res http.Response
|
||||
var url string
|
||||
if s != "" {
|
||||
s = strings.Replace(s, " ", "%20", -1)
|
||||
url = fmt.Sprintf(baseUrl+"s=%s&y=%s", s, y)
|
||||
} else if i != "" {
|
||||
url = fmt.Sprintf(baseUrl+"i=%s&plot=%s&tomatoes=%s", i, plot, tomatoes)
|
||||
} else if t != "" {
|
||||
t = strings.Replace(t, " ", "%20", -1)
|
||||
url = fmt.Sprintf(baseUrl+"t=%s&plot=%s&tomatoes=%s&y=%s", t, plot, tomatoes, y)
|
||||
var Url *url.URL
|
||||
Url, err = url.Parse(baseUrl)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
Url.Path += "/"
|
||||
parameters := url.Values{}
|
||||
if len(s) > 0 {
|
||||
parameters.Add("s", s)
|
||||
parameters.Add("y", y)
|
||||
} else if len(i) > 0 {
|
||||
parameters.Add("i", i)
|
||||
parameters.Add("plot", plot)
|
||||
parameters.Add("tomatoes", tomatoes)
|
||||
} else if len(t) > 0 {
|
||||
parameters.Add("t", t)
|
||||
parameters.Add("plot", plot)
|
||||
parameters.Add("tomatoes", tomatoes)
|
||||
parameters.Add("y", y)
|
||||
} else {
|
||||
return nil, errors.New("Invalid Request")
|
||||
}
|
||||
//log.Print(url) //DEBUG
|
||||
res, err := http.Get(url)
|
||||
Url.RawQuery = parameters.Encode()
|
||||
res, err := http.Get(Url.String())
|
||||
err = checkErrorStatus(res.StatusCode)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
Loading…
Reference in a new issue