अगर किसी को अभी भी यह करने के लिए उत्तर मिल रहा है, तो यह है कि मैं यह कैसे कर रहा हूं।
package main
import (
"bytes"
"io/ioutil"
"log"
"net/http"
"time"
)
var httpClient *http.Client
const (
MaxIdleConnections int = 20
RequestTimeout int = 5
)
func init() {
httpClient = createHTTPClient()
}
func createHTTPClient() *http.Client {
client := &http.Client{
Transport: &http.Transport{
MaxIdleConnsPerHost: MaxIdleConnections,
},
Timeout: time.Duration(RequestTimeout) * time.Second,
}
return client
}
func main() {
endPoint := "https://localhost:8080/doSomething"
req, err := http.NewRequest("POST", endPoint, bytes.NewBuffer([]byte("Post this data")))
if err != nil {
log.Fatalf("Error Occured. %+v", err)
}
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
response, err := httpClient.Do(req)
if err != nil && response == nil {
log.Fatalf("Error sending request to API endpoint. %+v", err)
}
defer response.Body.Close()
body, err := ioutil.ReadAll(response.Body)
if err != nil {
log.Fatalf("Couldn't parse response body. %+v", err)
}
log.Println("Response Body:", string(body))
}
Go Playground: http://play.golang.org/p/oliqHLmzSX
सारांश में, मैं एक HTTP क्लाइंट बनाने और इसे वैश्विक चर को असाइन करने और फिर अनुरोध करने के लिए इसका उपयोग करने के लिए एक अलग विधि बना रहा हूं। ध्यान दें
defer response.Body.Close()
यह कनेक्शन बंद कर देगा और इसे पुन: उपयोग के लिए तैयार कर देगा।
आशा है कि यह किसी की मदद करेगा।