> For the complete documentation index, see [llms.txt](https://docs.ipwo.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ipwo.net/kai-fa-zhe-wen-dang/dai-ma-shi-li/go.md).

# Go

使用 Go（Golang）可以通过[ IPWO 代理](https://www.ipwo.net/)发起 HTTP 请求，适用于高性能 API 服务、数据采集与并发请求场景。

***

### 一、HTTP 代理示例

```go
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))
}
```

***

### 二、正常返回示例

```json
{
  "ip": "203.0.113.10",
  "country": "US"
}
```

如果返回的 IP：

* 不是本机公网 IP
* 国家地区正确

说明代理已经生效。

***

### 三、增加 Timeout（推荐）

建议增加 timeout：

```go
client := &http.Client{
	Transport: transport,
	Timeout: 30 * time.Second,
}
```

***

### 四、常见问题

#### [407 Proxy Authentication Required](/kai-fa-zhe-wen-dang/chang-jian-cuo-wu/407-proxy-authentication-required.md)

通常是：

* 用户名错误
* 密码错误
* zone 参数错误

***

#### [Timeout 超时](/kai-fa-zhe-wen-dang/chang-jian-cuo-wu/chao-shi-timeout.md)

通常是：

* 网络环境异常
* DNS 问题
* 请求超时时间过短

***

#### [Connection reset](/kai-fa-zhe-wen-dang/chang-jian-cuo-wu/connection-reset.md)

高并发场景可能出现：

```
连接被远程服务器中断
```

建议：

* 增加 Retry
* 控制并发数量

***

### 五、推荐开发建议

推荐：

* 使用海外 VPS
* 增加 timeout
* 增加 Retry 重试机制
* 使用粘性 Session

适用于：

* API 服务
* 数据采集
* 高并发请求
* AI 数据处理

***

### 六、相关文章

* [Python Requests](/kai-fa-zhe-wen-dang/dai-ma-shi-li/python/requests.md)
* [HTTPX](/kai-fa-zhe-wen-dang/dai-ma-shi-li/python/httpx.md)
* [aiohttp](/kai-fa-zhe-wen-dang/dai-ma-shi-li/python/aiohttp-yi-bu.md)
* [如何检测代理是否生效](/dai-li-jian-ce-yu-yin-si-an-quan/ru-he-jian-ce-dai-li-shi-fou-sheng-xiao.md)
* [API 调用与批量采集](/dai-li-ji-chu-zhi-shi/api-diao-yong-yu-pi-liang-cai-ji.md)
* [超时 Timeout](/kai-fa-zhe-wen-dang/chang-jian-cuo-wu/chao-shi-timeout.md)
