我試圖通過Go發佈內容到nginx服務器。我覈實,我能夠正確發佈通過捲曲這樣的內容,特別是使用下面的命令:Getting Go的HTTP post來模擬curl -d
$ curl http://example.com/myendpoint -d "Some Text"
我能看到這個帖子,並正確處理它。但是,當我嘗試使用Go執行POST時,它會被服務器拒絕。在nginx的訪問日誌,我看到這兩條線:
127.0.0.1 - - [30/Jan/2014:05:57:34 +0000] "POST /myendpoint HTTP/1.1" 400 0 "-" "Go 1.1 package http"
127.0.0.1 - - [30/Jan/2014:05:57:39 +0000] "Some Text" 400 172 "-" "-"
,我已經試過代碼如下:
r, err := http.Post(uri, "application/x-www-form-urlencoded", bytes.NewReader(data))
if err != nil {
log.Printf("HTTP NOTIFICATION ERROR: %s\n", err)
return
}
r.Body.Close()
有什麼,我做錯了什麼?謝謝!
我認爲這只是整體代碼的一部分,所以如果推遲r.Body.Close()'? – bishop
@bishop:不幸的是,這並沒有幫助解決問題。我上面粘貼的代碼是在它自己的函數中,它實際上已經分離成一個單獨的goroutine。 –