mirror of
https://github.com/lukaszraczylo/go-simple-graphql.git
synced 2026-10-14 00:58:32 +00:00
Fix the ancient bug where client wasn't able to use non-https endpoints.
This commit is contained in:
@@ -15,7 +15,6 @@ package gql
|
|||||||
import (
|
import (
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
@@ -83,25 +82,30 @@ func setCacheEnabled() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewConnection() *GraphQL {
|
func NewConnection() *GraphQL {
|
||||||
|
|
||||||
|
endpoint := pickGraphqlEndpoint()
|
||||||
|
var httpClient *http.Client
|
||||||
|
if strings.HasPrefix(endpoint, "http://") {
|
||||||
|
// HTTP/1.1 client
|
||||||
|
httpClient = &http.Client{}
|
||||||
|
} else {
|
||||||
|
// HTTP/2 or HTTPS client
|
||||||
|
http2Transport := &http2.Transport{
|
||||||
|
AllowHTTP: true,
|
||||||
|
}
|
||||||
|
if strings.HasPrefix(endpoint, "https://") {
|
||||||
|
http2Transport.TLSClientConfig = &tls.Config{
|
||||||
|
InsecureSkipVerify: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
httpClient = &http.Client{
|
||||||
|
Transport: http2Transport,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
g := GraphQL{
|
g := GraphQL{
|
||||||
Endpoint: pickGraphqlEndpoint(),
|
Endpoint: endpoint,
|
||||||
HttpClient: &http.Client{
|
HttpClient: httpClient,
|
||||||
Transport: &http2.Transport{
|
|
||||||
DialTLS: func(network, addr string, cfg *tls.Config) (net.Conn, error) {
|
|
||||||
if strings.HasPrefix(network, "http") {
|
|
||||||
return net.Dial(network, addr)
|
|
||||||
}
|
|
||||||
return tls.Dial(network, addr, cfg)
|
|
||||||
},
|
|
||||||
ReadIdleTimeout: 30 * time.Second,
|
|
||||||
DisableCompression: false,
|
|
||||||
AllowHTTP: true,
|
|
||||||
PingTimeout: 5 * time.Second,
|
|
||||||
TLSClientConfig: &tls.Config{
|
|
||||||
InsecureSkipVerify: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Log: logging.NewLogger(),
|
Log: logging.NewLogger(),
|
||||||
Cache: setCacheEnabled(),
|
Cache: setCacheEnabled(),
|
||||||
CacheStore: setupCache(),
|
CacheStore: setupCache(),
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ func (g *GraphQL) Query(queryContent string, queryVariables interface{}, queryHe
|
|||||||
|
|
||||||
err = retry.Do(
|
err = retry.Do(
|
||||||
func() error {
|
func() error {
|
||||||
|
g.Log.Debug("Sending the query")
|
||||||
httpResponse, err = g.HttpClient.Do(httpRequest)
|
httpResponse, err = g.HttpClient.Do(httpRequest)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user