123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package httpgetter
- import (
- "errors"
- "io"
- "net/http"
- "net/url"
- "strings"
- )
- type Image struct {
- Blob []byte
- Mediatype string
- }
- func GetImage(urlStr string) (*Image, error) {
- if _, err := url.Parse(urlStr); err != nil {
- return nil, err
- }
- response, err := http.Get(urlStr)
- if err != nil {
- return nil, err
- }
- defer response.Body.Close()
- mediatype, err := getMediatype(response)
- if err != nil {
- return nil, err
- }
- if !strings.HasPrefix(mediatype, "image/") {
- return nil, errors.New("Wrong image mediatype")
- }
- bodyBytes, err := io.ReadAll(response.Body)
- if err != nil {
- return nil, err
- }
- image := &Image{
- Blob: bodyBytes,
- Mediatype: mediatype,
- }
- return image, nil
- }
|