github.com/nsqio/nsq@v1.3.0/apps/nsq_to_http/http.go (about)

     1  package main
     2  
     3  import (
     4  	"bytes"
     5  	"fmt"
     6  	"net/http"
     7  
     8  	"github.com/nsqio/nsq/internal/version"
     9  )
    10  
    11  var httpclient *http.Client
    12  var userAgent string
    13  
    14  func init() {
    15  	userAgent = fmt.Sprintf("nsq_to_http v%s", version.Binary)
    16  }
    17  
    18  func HTTPGet(endpoint string) (*http.Response, error) {
    19  	req, err := http.NewRequest("GET", endpoint, nil)
    20  	if err != nil {
    21  		return nil, err
    22  	}
    23  	req.Header.Set("User-Agent", userAgent)
    24  	for key, val := range validCustomHeaders {
    25  		req.Header.Set(key, val)
    26  	}
    27  	return httpclient.Do(req)
    28  }
    29  
    30  func HTTPPost(endpoint string, body *bytes.Buffer) (*http.Response, error) {
    31  	req, err := http.NewRequest("POST", endpoint, body)
    32  	if err != nil {
    33  		return nil, err
    34  	}
    35  	req.Header.Set("User-Agent", userAgent)
    36  	req.Header.Set("Content-Type", *contentType)
    37  	for key, val := range validCustomHeaders {
    38  		req.Header.Set(key, val)
    39  	}
    40  	return httpclient.Do(req)
    41  }