Last active
January 1, 2016 05:39
-
-
Save dcarley/8100039 to your computer and use it in GitHub Desktop.
Testing Fastly's API authentication
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
➜ ~ go run test_fastly_api_auth.go -user ${FASTLY_USER} -pass ${FASTLY_PASS} | |
200 OK | |
Took 469.833754ms | |
➜ ~ go run test_fastly_api_auth.go -user ${FASTLY_USER} -pass ${FASTLY_PASS} | |
200 OK | |
Took 995.766412ms | |
➜ ~ go run test_fastly_api_auth.go -user ${FASTLY_USER} -pass ${FASTLY_PASS} | |
200 OK | |
Took 835.970521ms |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
➜ ~ go run test_fastly_api_auth.go -user ${FASTLY_USER} -pass ${FASTLY_PASS} | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
200 OK | |
Took 41.633421364s | |
➜ ~ go run test_fastly_api_auth.go -user ${FASTLY_USER} -pass ${FASTLY_PASS} | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
403 Forbidden | |
200 OK | |
Took 1m28.361991013s |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"errors" | |
"flag" | |
"fmt" | |
"net/url" | |
"net/http" | |
"net/http/cookiejar" | |
"time" | |
) | |
var ( | |
user = flag.String("user", "", "API username") | |
pass = flag.String("pass", "", "API password") | |
) | |
func main() { | |
flag.Parse() | |
cj, _ := cookiejar.New(nil) | |
client := &http.Client{Jar: cj} | |
auth(client) | |
start := time.Now() | |
for err := errors.New(""); err != nil; { | |
var resp *http.Response | |
resp, err = stats(client) | |
fmt.Println(resp.Status) | |
if err != nil { | |
time.Sleep(time.Second) | |
} | |
} | |
fmt.Println("Took", time.Now().Sub(start)) | |
} | |
func auth(client *http.Client) { | |
creds := url.Values{ | |
"user": {*user}, | |
"password": {*pass}, | |
} | |
resp, err := client.PostForm("https://api.fastly.com/login", creds) | |
defer resp.Body.Close() | |
if err != nil || resp.StatusCode != 200 { | |
panic("Auth failed") | |
} | |
} | |
func stats(client *http.Client) (resp *http.Response, err error) { | |
resp, err = client.Get("https://api.fastly.com/stats/usage") | |
defer resp.Body.Close() | |
if err == nil && resp.StatusCode != 200 { | |
err = errors.New("Non-200 response") | |
} | |
return | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment