登录
首页 >  Golang >  Go问答

使用HTTPS和SOCKS4代理的教程

来源:stackoverflow

时间:2024-02-24 17:33:24 302浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《使用HTTPS和SOCKS4代理的教程》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我找不到在 golang 中执行此操作的方法,所以我来询问。

我有各种代理(http://~、https://~ 等)

将接受 http://ip:port 和 sock5://ip:port 的请求,但不接受 https://ip:port 和 sock4://ip:port 的请求。

我应该做什么?

这是将其分配给环境变量的唯一方法吗?

package main

import (
    "fmt"
    "net/http"
    "net/url"
)

func main(){
    req, _ := http.NewRequest("GET", site URL, nil)
    req.Close = true

    var proxy string = "proxy"
    a, _ := url.Parse(proxy)
    i := &http.Transport{
        Proxy: http.ProxyURL(a),
        TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
    }
    client := &http.Client{
        Transport: i,
    }
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    doc, _ := goquery.NewDocumentFromReader(resp.Body)
    fmt.Println(doc)
}

解决方案


下面的代码在我这边运行良好

package main

import (
    "fmt"
    "net/http"
    "net/url"
)

func main(){
    req, _ := http.NewRequest("GET", site URL, nil)
    req.Close = true

    var proxy string = "proxy"
    a, _ := url.Parse(proxy)
    i := &http.Transport{
    Proxy: http.ProxyURL(a),
    //Proxy: http.ProxyFromEnvironment,
    TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
    TLSNextProto:    make(map[string]func(authority string, c *tls.Conn) http.RoundTripper),

    }

    client := &http.Client{}
    client.Transport = i
    resp, err := client.Do(req)

if err != nil {
    log.Fatalln(err)
    return
}
defer resp.Body.Close()

    doc, _ := goquery.NewDocumentFromReader(resp.Body)
    fmt.Println(doc)
}

希望对你有帮助

理论要掌握,实操不能落!以上关于《使用HTTPS和SOCKS4代理的教程》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>