Browse Source

set user agent header only if non-empty

Will Norris 11 years ago
parent
commit
b55688dcf0
2 changed files with 17 additions and 1 deletions
  1. +3
    -1
      github/github.go
  2. +14
    -0
      github/github_test.go

+ 3
- 1
github/github.go View File

@ -165,7 +165,9 @@ func (c *Client) NewRequest(method, urlStr string, body interface{}) (*http.Requ
} }
req.Header.Add("Accept", mediaTypeV3) req.Header.Add("Accept", mediaTypeV3)
req.Header.Add("User-Agent", c.UserAgent)
if c.UserAgent != "" {
req.Header.Add("User-Agent", c.UserAgent)
}
return req, nil return req, nil
} }


+ 14
- 0
github/github_test.go View File

@ -211,6 +211,20 @@ func TestNewRequest_badURL(t *testing.T) {
testURLParseError(t, err) testURLParseError(t, err)
} }
// ensure that no User-Agent header is set if the client's UserAgent is empty.
// This caused a problem with Google's internal http client.
func TestNewRequest_emptyUserAgent(t *testing.T) {
c := NewClient(nil)
c.UserAgent = ""
req, err := c.NewRequest("GET", "/", nil)
if err != nil {
t.Fatalf("NewRequest returned unexpected error: %v", err)
}
if _, ok := req.Header["User-Agent"]; ok {
t.Fatal("constructed request contains unexpected User-Agent header")
}
}
func TestResponse_populatePageValues(t *testing.T) { func TestResponse_populatePageValues(t *testing.T) {
r := http.Response{ r := http.Response{
Header: http.Header{ Header: http.Header{


Loading…
Cancel
Save