For the complete documentation index, see llms.txt. This page is also available as Markdown.

Go

使用 Go(Golang)可以通过 IPWO 代理发起 HTTP 请求,适用于高性能 API 服务、数据采集与并发请求场景。


一、HTTP 代理示例

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
	"os"
)

func main() {

	proxyURL, _ := url.Parse(
		"http://username_custom_zone_US:password@us.ipwo.net:7878",
	)

	proxy := http.ProxyURL(proxyURL)

	transport := &http.Transport{
		Proxy: proxy,
	}

	client := &http.Client{
		Transport: transport,
	}

	targetURL := "http://ipinfo.io"

	resp, err := client.Get(targetURL)

	if err != nil {
		fmt.Fprintln(
			os.Stderr,
			"Error fetching from",
			targetURL,
			":",
			err,
		)

		os.Exit(1)
	}

	defer resp.Body.Close()

	body, err := ioutil.ReadAll(resp.Body)

	if err != nil {
		fmt.Fprintln(
			os.Stderr,
			"Error reading response body:",
			err,
		)

		os.Exit(1)
	}

	fmt.Println(string(body))
}

二、正常返回示例

如果返回的 IP:

  • 不是本机公网 IP

  • 国家地区正确

说明代理已经生效。


三、增加 Timeout(推荐)

建议增加 timeout:


四、常见问题

通常是:

  • 用户名错误

  • 密码错误

  • zone 参数错误


通常是:

  • 网络环境异常

  • DNS 问题

  • 请求超时时间过短


高并发场景可能出现:

建议:

  • 增加 Retry

  • 控制并发数量


五、推荐开发建议

推荐:

  • 使用海外 VPS

  • 增加 timeout

  • 增加 Retry 重试机制

  • 使用粘性 Session

适用于:

  • API 服务

  • 数据采集

  • 高并发请求

  • AI 数据处理


六、相关文章

最后更新于

这有帮助吗?