diff options
| -rw-r--r-- | timetask/http.go | 28 | ||||
| -rw-r--r-- | timetask/http_test.go | 12 | 
2 files changed, 36 insertions, 4 deletions
| diff --git a/timetask/http.go b/timetask/http.go index ae2fdc4..28e8b10 100644 --- a/timetask/http.go +++ b/timetask/http.go @@ -1,11 +1,33 @@  package timetask  import ( -	// "mime/multipart"  	"net/http" +	"net/http/cookiejar" +	"net/url" + +	"golang.org/x/net/publicsuffix"  ) -func Login() (resp *http.Response, err error) { -	resp, err = http.Get("https://duckduckgo.com") +func Login(username, password string) (resp *http.Response, err error) { +	cookies, err := cookiejar.New(&cookiejar.Options{PublicSuffixList: publicsuffix.List}) +	if err != nil { +		return nil, err +	} + +	client := http.Client{Jar: cookies} +	resp, err = client.PostForm( +		"https://af83.timetask.com/index.php", +		url.Values{ +			"module":     {"people"}, +			"action":     {"loginsubmit"}, +			"f_url":      {"/"}, +			"f_username": {username}, +			"f_password": {password}, +		}, +	) +	if err != nil { +		return resp, err +	} +  	return resp, err  } diff --git a/timetask/http_test.go b/timetask/http_test.go index 7adf2c4..e3dad9d 100644 --- a/timetask/http_test.go +++ b/timetask/http_test.go @@ -1,12 +1,22 @@  package timetask  import ( +	"flag"  	"io/ioutil"  	"testing"  ) +var username, password string + +func init() { +	flag.StringVar(&username, "username", "", "Username") +	flag.StringVar(&password, "password", "", "Password") +	flag.Parse() + +} +  func TestLogin(t *testing.T) { -	response, _ := Login() +	response, _ := Login(username, password)  	defer response.Body.Close()  	body, _ := ioutil.ReadAll(response.Body)  	t.Log(response) | 
