# Ví dụ code

Mọi ví dụ đều dùng chế độ tài khoản + mật khẩu. Thay `USERNAME`, `PASSWORD` bằng thông tin xác thực ở trang "Cài đặt proxy" trong bảng điều khiển là chạy được; cú pháp tham số username xem tại [trang tham chiếu cú pháp](https://www.eproxies.io/docs/usage/username-syntax).

## cURL

```bash
# Proxy HTTP
curl -x proxy.eproxies.net:23333 -U "USERNAME-pool-flow-region-US:PASSWORD" https://ipinfo.io

# Proxy SOCKS5 (cùng cổng)
curl -x socks5://USERNAME-pool-flow-region-US:PASSWORD@proxy.eproxies.net:23333 https://ipinfo.io
```

## Python (requests)

```python
import requests

proxy_url = "http://USERNAME-pool-flow-region-US:PASSWORD@proxy.eproxies.net:23333"
proxies = {"http": proxy_url, "https": proxy_url}

response = requests.get("https://ipinfo.io", proxies=proxies, timeout=30)
print(response.json())
```

Cách viết SOCKS5: đổi `http://` thành `socks5://` và cài phần mở rộng: `pip install "requests[socks]"`.

## Node.js (axios)

```javascript
const axios = require("axios");
const { HttpsProxyAgent } = require("https-proxy-agent");

const agent = new HttpsProxyAgent(
  "http://USERNAME-pool-flow-region-US:PASSWORD@proxy.eproxies.net:23333"
);

axios
  .get("https://ipinfo.io", { httpsAgent: agent, timeout: 30000 })
  .then((res) => console.log(res.data))
  .catch((err) => console.error(err.message));
```

## Java (OkHttp)

```java
import java.net.InetSocketAddress;
import java.net.Proxy;
import okhttp3.Credentials;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class EProxiesDemo {
    public static void main(String[] args) throws Exception {
        Proxy proxy = new Proxy(Proxy.Type.HTTP,
                new InetSocketAddress("proxy.eproxies.net", 23333));

        OkHttpClient client = new OkHttpClient.Builder()
                .proxy(proxy)
                .proxyAuthenticator((route, response) -> {
                    String credential = Credentials.basic(
                            "USERNAME-pool-flow-region-US", "PASSWORD");
                    return response.request().newBuilder()
                            .header("Proxy-Authorization", credential)
                            .build();
                })
                .build();

        Request request = new Request.Builder().url("https://ipinfo.io").build();
        try (Response response = client.newCall(request).execute()) {
            System.out.println(response.body().string());
        }
    }
}
```

## Go

```go
package main

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

func main() {
	proxyURL, _ := url.Parse(
		"http://USERNAME-pool-flow-region-US:PASSWORD@proxy.eproxies.net:23333")

	client := &http.Client{
		Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)},
	}

	resp, err := client.Get("https://ipinfo.io")
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
```

## PHP (cURL)

```php
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://ipinfo.io");
curl_setopt($ch, CURLOPT_PROXY, "proxy.eproxies.net:23333");
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "USERNAME-pool-flow-region-US:PASSWORD");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
```

> Trang "Ví dụ code" trong bảng điều khiển còn cung cấp phiên bản C/C++, cùng hướng dẫn cấu hình dạng đồ họa cho trình duyệt Chrome, Edge, Firefox, Safari và di động Android, iOS, đồng thời tự động điền sẵn thông tin xác thực thật của bạn.

## Kiểm tra và xử lý sự cố

* Dùng `https://ipinfo.io` để kiểm tra IP đầu ra và vị trí địa lý có đúng như mong đợi không.
* Trả về 407: kiểm tra username có chứa `-pool-flow` không và thông tin xác thực có chính xác không.
* Timeout: trước tiên bỏ tham số định vị, dùng `USERNAME-pool-flow` để kiểm tra kết nối cơ bản, rồi thêm dần tham số để khoanh vùng vấn đề.
* Cách kết nối cho các framework tự động hóa (Selenium / Puppeteer / Playwright / Scrapy) xem tại [Framework tự động hóa](https://www.eproxies.io/docs/integrations/automation-frameworks).
