我正在设置一个图像编码器功能,您可以在其中输入一个图像 URL,它会返回它的 ISO-8859-1 版本。我将如何编写一个向 URL 发送 HTTP GET 请求并将这些字节转换为 ISO-8859-1 的函数?下面的代码是我目前所拥有的一切。
func grabImageBytes(imageURL string) ([]byte, error) {
req, _ := http.NewRequest("GET", imageURL, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
return nil, err
} else {
return body, nil
}
}
其他功能:
func getRandomImage(keyword string) (string, error) {
req, _ := http.NewRequest("GET", "https://www.google.com/search?tbm=isch&q="+keyword, nil)
req.Header.Add("authority", "www.google.com")
req.Header.Add("upgrade-insecure-requests", "1")
req.Header.Add("referer", "https://images.google.com/")
req.Header.Add("accept-language", "en-US,en;q=0.9")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
var imageURL string
if strings.Contains(string(body), ",\"ou\":\"") {
imageURL = strings.Split(strings.Split(string(body), ",\"ou\":\"")[1], "\",\"ow\":")[0]
} else {
return "", errors.New("Image not found.")
}
req2, _ := http.NewRequest("GET", imageURL, nil)
res2, _ := http.DefaultClient.Do(req2)
defer res2.Body.Close()
if res2.StatusCode == 404 {
return "", errors.New("Image not found.")
} else {
return imageURL, nil
}
}
忽然笑
相关分类