Files
chorus/internal/platform/http/provider.go
T

28 lines
1020 B
Go

package safehttp
import (
"bytes"
"context"
"git.ilapage.cn/OPC/chorus/internal/core/provider"
)
type ProviderClient struct{ client *Client }
func NewProviderClient(client *Client) *ProviderClient { return &ProviderClient{client: client} }
func (c *ProviderClient) Do(ctx context.Context, request provider.HTTPRequest) (provider.HTTPResponse, error) {
response, err := c.client.Do(ctx, Request{
Method: request.Method, URL: request.URL, Header: request.Header,
Body: bytes.NewReader(request.Body), MaxBytes: request.MaxBytes,
})
return provider.HTTPResponse{StatusCode: response.StatusCode, ContentType: response.ContentType, Body: response.Body}, err
}
func (c *ProviderClient) Fetch(ctx context.Context, rawURL string, maxBytes int64) (provider.HTTPResponse, error) {
response, err := c.client.Fetch(ctx, rawURL, maxBytes)
return provider.HTTPResponse{StatusCode: response.StatusCode, ContentType: response.ContentType, Body: response.Body}, err
}
var _ provider.HTTPClient = (*ProviderClient)(nil)