python机器学习爬虫程序员小石头HTTP

go使用HTTP代理和SOCKS5代理的代码示例

2024-03-18  本文已影响0人  小石头IP客服

本文档为获取到代理IP后使用代理的代码样例,供开发者参考。

代码样例直接运行无法得到正确的结果,因为代码中的代理地址/端口和应用账号密码等信息都是虚构的,您替换成自己真实的就可以正常运行了。

如何获取代理地址/端口和设置代理授权?

请参考:接入指南 - 快速入门

使用前提:

1、 已经获取代理地址,去获取:www.xiaoshitouip.com

2、 已经设置代理授权(用户名/密码或者IP白名单)。

package main

import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
    "net/url"
    "time"
)

func main() {
    # 从 https://www.xiaoshitouip.com/ 领取后,替换自己的ip+端口
    # 到管理后台:https://admin.xiaoshitouip.com/proxy/proxy-auth 授权管理页面添加账号密码或者ip白名单
    # 设置了ip白名单就不需要设置账号密码了
    proxyAddr := "http://代理服务器ip:代理服务器http端口/"
    //账号密码验证
    //proxyAddr := "http://用户名:密码@代理服务器ip:代理服务器http端口/"

    //proxyAddr := "socks5://代理服务器ip:代理服务器http端口/"
    //proxyAddr := "socks5://用户名:密码@代理服务器ip:代理服务器http端口/"
    httpUrl := "http://myip.ipip.net"

    proxy, err := url.Parse(proxyAddr)
    if err != nil {
        log.Fatal(err)
    }
    netTransport := &http.Transport{
        Proxy:http.ProxyURL(proxy),
        MaxIdleConnsPerHost: 10,
        ResponseHeaderTimeout: time.Second * time.Duration(5),
    }
    httpClient := &http.Client{
        Timeout: time.Second * 10,
        Transport: netTransport,
    }
    res, err := httpClient.Get(httpUrl)
    if err != nil {
        log.Println(err)
        return
    }
    defer res.Body.Close()
    if res.StatusCode != http.StatusOK {
        log.Println(err)
        return
    }
    c, _ := ioutil.ReadAll(res.Body)
    fmt.Println(string(c))
}

上一篇下一篇

猜你喜欢

热点阅读