diff --git a/pkg/core/oracle_test.go b/pkg/core/oracle_test.go index fb2bbb0bf..e10c8f547 100644 --- a/pkg/core/oracle_test.go +++ b/pkg/core/oracle_test.go @@ -327,8 +327,8 @@ type ( ) // Get implements oracle.HTTPClient interface. -func (c *httpClient) Get(url string) (*http.Response, error) { - resp, ok := c.responses[url] +func (c *httpClient) Do(req *http.Request) (*http.Response, error) { + resp, ok := c.responses[req.URL.String()] if ok { return &http.Response{ StatusCode: resp.code, diff --git a/pkg/services/oracle/oracle.go b/pkg/services/oracle/oracle.go index 94f5084f1..be8b80db9 100644 --- a/pkg/services/oracle/oracle.go +++ b/pkg/services/oracle/oracle.go @@ -66,7 +66,7 @@ type ( // HTTPClient is an interface capable of doing oracle requests. HTTPClient interface { - Get(string) (*http.Response, error) + Do(*http.Request) (*http.Response, error) } // Broadcaster broadcasts oracle responses. diff --git a/pkg/services/oracle/request.go b/pkg/services/oracle/request.go index e61f47ba6..216ba60e8 100644 --- a/pkg/services/oracle/request.go +++ b/pkg/services/oracle/request.go @@ -111,7 +111,14 @@ func (o *Oracle) processRequest(priv *keys.PrivateKey, req request) error { break } } - r, err := o.Client.Get(req.Req.URL) + httpReq, err := http.NewRequest("GET", req.Req.URL, nil) + if err != nil { + o.Log.Warn("failed to create http request", zap.String("url", req.Req.URL), zap.Error(err)) + resp.Code = transaction.Error + break + } + httpReq.Header.Set("User-Agent", "NeoOracleService/3.0") + r, err := o.Client.Do(httpReq) if err != nil { o.Log.Warn("oracle request failed", zap.String("url", req.Req.URL), zap.Error(err)) resp.Code = transaction.Error