2014-06-30 25 views
42

Tôi thấy gói http đi khá khó hiểu. Tôi nghĩ rằng các khách hàng và máy chủ nên được tách ra trong hai gói khác nhau và có lẽ một thứ 3 với những thứ phổ biến.Cách gửi yêu cầu POST ở Golang?

Dù sao cố gắng thực hiện yêu cầu POST nhưng tôi không thể hoàn thành nó. Không có gì nhận được ở phía bên kia. Đây có phải là cách hoạt động của nó không? Tôi biết về chức năng PostForm nhưng tôi nghĩ tôi không thể sử dụng nó vì nó không thể được kiểm tra với httputil phải không?

hc := http.Client{} 
    req, err := http.NewRequest("POST", APIURL, nil) 

    form := url.Values{} 
    form.Add("ln", c.ln) 
    form.Add("ip", c.ip) 
    form.Add("ua", c.ua) 
    req.PostForm = form 
    req.Header.Add("Content-Type", "application/x-www-form-urlencoded") 

    glog.Info("form was %v", form) 
    resp, err := hc.Do(req) 
+2

có thể lặp lại ở đây: http://stackoverflow.com/questions/19253469/make-a-url-encoded-post-request-using-http-newrequest – nvcnvn

+0

những gì bạn đang thử nghiệm với 'httputil'? – JimB

+0

Trình xử lý http. Tôi nghĩ rằng đó là một loại thử nghiệm e2e – hey

Trả lời

73

Bạn có ý tưởng đúng, đó chỉ là việc gửi biểu mẫu sai. Biểu mẫu thuộc về nội dung của yêu cầu.

req, err := http.NewRequest("POST", url, strings.NewReader(form.Encode())) 
+9

... ngay bây giờ tôi đã nhìn vào điều đó ... có vẻ như bạn cần phải đọc mã nguồn không chỉ là godoc để có được cách nó phải làm việc. – hey

Các vấn đề liên quan