Ошибка , при невалид прокси . Golang
я отправляю запрос на сайт с подключенной прокси и все работает , но в случае мертвой прокси я получаю ошибку.
[signal 0xc0000005 code=0x0 addr=0x38 pc=0x42c65e]
goroutine 1 [running]:
main.main()
z:/main.go:33 +0x3de
exit status 2
Process exiting with code: 1 signal: false
как обработать данную ошибку ?
мой код:
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"strings"
"golang.org/x/net/proxy"
)
func main() {
dialer, err := proxy.SOCKS5("tcp", strings.TrimSpace("212.129.25.12:21418"), nil, proxy.Direct)
if err != nil {
fmt.Println("Error connecting to proxy:", err)
}
client := &http.Client{
Transport: &http.Transport{
Dial: dialer.Dial,
},
}
requestBody, err := json.Marshal(map[string]string{
"api": strings.TrimSpace("login"),
"key": "CrES3B2kN0k2VJsras5W",
})
if err != nil {
fmt.Println("ошибка")
}
req, err := client.Post("https://httpbin.org/#/Auth", "application/json", bytes.NewBuffer(requestBody))
req.Header.Set("content-type", "application/json")
if err != nil {
fmt.Println("ошибка")
}
defer req.Body.Close()
// resposnse decode
body, err := ioutil.ReadAll(req.Body)
if err != nil {
fmt.Println("ошибка")
}
fmt.Println(string(body))
}
Ответы (1 шт):
Автор решения: Ainar-G
→ Ссылка
Предположу, что проблема здесь:
req, err := client.Post("https://httpbin.org/#/Auth", "application/json", bytes.NewBuffer(requestBody))
req.Header.Set("content-type", "application/json")
if err != nil {
fmt.Println("ошибка")
}
Во-первых, это resp,
а не req. Ответ,
а не запрос. Во-вторых, вы используете req
до того, как проверяете err. Лучше
как-то так:
resp, err := client.Post("https://httpbin.org/#/Auth", "application/json", bytes.NewBuffer(requestBody))
if err != nil {
fmt.Println("ошибка")
}
// Работа с resp.