55 "errors"
66 "io"
77 "mime/multipart"
8+ "net/http"
89 "net/url"
10+ "strings"
911)
1012
1113// OpenState opens the state file for reading.
@@ -18,7 +20,12 @@ func (c *Client) OpenState() (io.ReadCloser, error) {
1820 if ! u .IsAbs () {
1921 return nil , errors .New ("box address must be absolute" )
2022 }
21- resp , err := c .HTTPClient .Get (u .String ())
23+ req , err := http .NewRequest ("GET" , u .String (), nil )
24+ if err != nil {
25+ return nil , err
26+ }
27+ req .Header .Set ("Accept" , "application/json; charset=utf-8" )
28+ resp , err := c .HTTPClient .Do (req )
2229 if err != nil {
2330 return nil , err
2431 }
@@ -47,7 +54,13 @@ func (c *Client) PostState(r io.Reader) error {
4754 if ! u .IsAbs () {
4855 return errors .New ("box address must be absolute" )
4956 }
50- resp , err := c .HTTPClient .Post (u .String (), w .FormDataContentType (), & buf )
57+ req , err := http .NewRequest ("POST" , u .String (), & buf )
58+ if err != nil {
59+ return err
60+ }
61+ req .Header .Set ("Accept" , "application/json; charset=utf-8" )
62+ req .Header .Set ("Content-Type" , w .FormDataContentType ())
63+ resp , err := c .HTTPClient .Do (req )
5164 if err != nil {
5265 return err
5366 }
@@ -70,10 +83,19 @@ func (c *Client) PostStateURL(stateURL *url.URL) error {
7083 }
7184 form := url.Values {}
7285 form .Set ("url" , stateURL .String ())
73- resp , err := c .HTTPClient .PostForm (u .String (), form )
86+ req , err := http .NewRequest ("POST" , u .String (), strings .NewReader (form .Encode ()))
87+ if err != nil {
88+ return err
89+ }
90+ req .Header .Set ("Accept" , "application/json; charset=utf-8" )
91+ resp , err := c .HTTPClient .Do (req )
7492 if err != nil {
7593 return err
7694 }
7795 defer resp .Body .Close ()
78- return c .parseResponse (resp .Body )
96+ err = c .parseResponse (resp .Body )
97+ if err != nil {
98+ return err
99+ }
100+ return nil
79101}
0 commit comments