# 代碼示例

Swiftproxy 讓開發者輕鬆將高品質住宅代理及靜態住宅代理整合到程式碼中。無論您使用的是 HTTP、HTTPS 或 SOCKS5 協議，我們的代理皆完全相容於主流程式語言與工具。

本節提供多種環境下的程式碼整合範例，幫助您在實際應用場景中實現代理支持，例如網頁爬蟲、數據彙整、SEO 監控等。

## Python

```python
// import requests
if __name__ == '__main__':
proxyip = "http://username_custom_zone_US:password@us.swiftproxy.net:7878"
url = "http://ipinfo.io"
proxies = {
'http': proxyip,
}
data = requests.get(url=url, proxies=proxies)
print(data.text)
```

## Node.js

```
// import fetch from 'node-fetch';
import createHttpsProxyAgent from 'https-proxy-agent'

const username = 'username_custom_zone_us';
const password = 'password';
const proxy = 'us.swiftproxy.net:7878'

const agent = createHttpsProxyAgent(
  `http://${username}:${password}@${proxy}`
);

const response = await fetch('http://ipinfo.io', {
  method: 'get',
  agent: agent,
});

console.log(await response.text());
```

## PHP

```php
// $ch = curl_init();
curl_setopt($ch, CURLOPT_PROXY, "us.swiftproxy.net" );
curl_setopt($ch, CURLOPT_PROXYUSERPWD, "username_custom_zone_us:password");
curl_setopt($ch, CURLOPT_PROXYTYPE,CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_URL, 'http://ipinfo.io');
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
```

## GO

```go
// package main
import (
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
	"os"
)
func main() {
	proxyURL, _ := url.Parse("http://username_custom_zone_US:password@us.swiftproxy.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))
}
```

## Java

```java
// import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.*;
import java.util.Base64;

public class Main {
    public static void main(String[] args) throws Exception {
        try {
            String proxyHost = "us.swiftproxy.net";
            int proxyPort = 7878;
            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
            String username = "username_custom_zone_us";
            String password = "password";
            String credentials = username + ":" + password;
            URL url = new URL("http://ipinfo.io");
            HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy);
            connection.setRequestMethod("GET");
            connection.setRequestProperty("Proxy-Authorization", "Basic " + Base64.getEncoder().encodeToString(credentials.getBytes()));
            int responseCode = connection.getResponseCode();
            System.out.println("Response Code: " + responseCode);
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String inputLine;
            StringBuilder response = new StringBuilder();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
            System.out.println((response.toString()));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
```

## C\#

```csharp
// See https://aka.ms/new-console-template for more information
using System.Net;
using System.Threading;

var handler = new HttpClientHandler
{
    UseProxy = true
};
var proxy = new WebProxy("http://us.swiftproxy.net:7878");
var proxyUsername = "username_custom_zone_us";
var proxyPass = "password";
proxy.Credentials = new NetworkCredential(proxyUsername, proxyPass);
handler.Proxy = proxy;
var httpClient = new HttpClient(handler);

httpClient.Timeout = TimeSpan.FromSeconds(15);

var task = httpClient.GetStringAsync("http://ipinfo.io/json");
task.Wait();
Console.WriteLine(task.Result);
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.swiftproxy.net/zh-tw/dai-li/dai-ma-shi-li.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
