Oxylabs Documentation
English
Search
K

Proxy Rotation

Self-Service Dedicated Datacenter Proxies supports proxy rotation. To use this feature you need to change your port number to 8000. With each new request you will receive a random IP from your proxy list.
Code examples
cURL
Python
Node.js
PHP
Go
Java
C#
curl -x ddc.oxylabs.io:8000 -U "user-USERNAME:PASSWORD" https://ip.oxylabs.io/location
import requests
username = 'USERNAME'
password = 'PASSWORD'
proxy = 'ddc.oxylabs.io:8000'
proxies = {
"https": ('https://user-%s:%s@%s' % (username, password, proxy))
}
response=requests.get("https://ip.oxylabs.io/location", proxies=proxies)
print(response.content)
const axios = require("axios");
const https = require("https");
const client = axios.create({
httpsAgent: new https.Agent({
rejectUnauthorized: false,
}),
});
const username = 'USERNAME';
const password = 'PASSWORD'
client
.get("https://ip.oxylabs.io/location", {
proxy: {
protocol: "https",
host: "ddc.oxylabs.io",
port: 8000,
auth: {
username: `user-${username}`,
password: password,
},
},
})
.then((res) => {
console.log(res.data);
})
.catch((err) => console.error(err));
<?php
$username = 'USERNAME';
$password = 'PASSWORD';
$proxy = 'https://ddc.oxylabs.io:8000';
$target = 'https://ip.oxylabs.io/location';
$request = curl_init($target);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_PROXY, $proxy);
curl_setopt($request, CURLOPT_PROXYUSERPWD, "user-$username:$password");
$responseBody = curl_exec($request);
$error = curl_error($request);
curl_close($request);
if ($responseBody !== false) {
echo 'Response: ' . $responseBody;
} else {
echo 'Failed to connect to proxy: ' . $error;
}
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
username, password, entry := "USERNAME", "PASSWORD", "ddc.oxylabs.io:8000"
proxy, err := url.Parse(fmt.Sprintf("https://user-%s:%s@%s", username, password, entry))
if err != nil {
panic(err)
}
transport := &http.Transport{
Proxy: http.ProxyURL(proxy),
}
client := &http.Client{Transport: transport}
target := "https://ip.oxylabs.io/location"
response, err := client.Get(target)
if err != nil {
panic(err)
}
defer response.Body.Close()
body, err := io.ReadAll(response.Body)
if err != nil {
panic(err)
}
fmt.Println("Response:")
fmt.Println(string(body))
}
package com.example;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Base64;
import org.apache.hc.client5.http.fluent.Request;
import org.apache.hc.core5.http.HttpHost;
public class App {
public static void main(String[] args) throws IOException, URISyntaxException {
String target = "http://ip.oxylabs.io/location";
String username = "USERNAME";
String password = "PASSWORD";
String proxy = "ddc.oxylabs.io:8000";
URI proxyURI = new URI(String.format("https://user-%s:%s@%s", username, password, proxy));
String basicAuth = new String(
Base64.getEncoder()
.encode(
proxyURI.getUserInfo().getBytes()));
String response = Request.get(target)
.addHeader("Proxy-Authorization", "Basic " + basicAuth)
.viaProxy(HttpHost.create(proxyURI))
.execute().returnContent().asString();
System.out.println(response);
}
}
using System.Net;
// .NET currently does not support HTTPS proxies
var proxy = new WebProxy {
Address = new Uri("http://ddc.oxylabs.io:8000"),
Credentials = new NetworkCredential(
userName: "user-USERNAME",
password: "PASSWORD"
)
};
var httpClientHandler = new HttpClientHandler {Proxy = proxy};
using var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
var result = await client.GetStringAsync("https://ip.oxylabs.io/location");
Console.WriteLine(result);
IPs will be selected from the indicated country pool if you provide a country- parameter. For example, if you want to rotate your United States proxy pool only, use a parameter country- and add two letter country code country-US in your user string.
Code examples
cURL
Python
Node.js
PHP
Go
Java
C#
curl -x https://ddc.oxylabs.io:8000 -U 'user-USERNAME-country-COUNTRY:PASSWORD' https://ip.oxylabs.io/location
import requests
username = 'USERNAME'
password = 'PASSWORD'
country = 'COUNTRY'
proxy = 'ddc.oxylabs.io:8001'
proxies = {
"https": ('https://user-%s-country-%s:%s@%s' % (username, country, password, proxy))
}
response=requests.get("https://ip.oxylabs.io/location", proxies=proxies)
print(response.content)
const axios = require("axios");
const https = require("https");
const client = axios.create({
httpsAgent: new https.Agent({
rejectUnauthorized: false,
}),
});
const username = 'USERNAME';
const country = 'COUNTRY'
const password = 'PASSWORD'
client
.get("https://ip.oxylabs.io/location", {
proxy: {
protocol: "https",
host: "ddc.oxylabs.io",
port: 8000,
auth: {
username: `user-${username}-country-${country}`,
password: password,
},
},
})
.then((res) => {
console.log(res.data);
})
.catch((err) => console.error(err));
<?php
$username = 'USERNAME';
$country = 'COUNTRY';
$password = 'PASSWORD';
$proxy = 'https://ddc.oxylabs.io:8000';
$target = 'https://ip.oxylabs.io/location';
$request = curl_init($target);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_PROXY, $proxy);
curl_setopt($request, CURLOPT_PROXYUSERPWD, "user-$username-country-$country:$password");
$responseBody = curl_exec($request);
$error = curl_error($request);
curl_close($request);
if ($responseBody !== false) {
echo 'Response: ' . $responseBody;
} else {
echo 'Failed to connect to proxy: ' . $error;
}
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
username, country, password, entry := "USERNAME", "COUNTRY", "PASSWORD", "ddc.oxylabs.io:8000"
proxy, err := url.Parse(fmt.Sprintf("https://user-%s-country-%s:%s@%s", username, country, password, entry))
if err != nil {
panic(err)
}
transport := &http.Transport{
Proxy: http.ProxyURL(proxy),
}
client := &http.Client{Transport: transport}
target := "https://ip.oxylabs.io/location"
response, err := client.Get(target)
if err != nil {
panic(err)
}
defer response.Body.Close()
body, err := io.ReadAll(response.Body)
if err != nil {
panic(err)
}
fmt.Println("Response:")
fmt.Println(string(body))
}
package com.example;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Base64;
import org.apache.hc.client5.http.fluent.Request;
import org.apache.hc.core5.http.HttpHost;
public class App {
public static void main(String[] args) throws IOException, URISyntaxException {
String targetUrl = "http://ip.oxylabs.io/location";
String username = "USERNAME";
String country = "COUNTRY";
String password = "PASSWORD";
String proxy = "ddc.oxylabs.io:8000";
URI proxyURI = new URI(String.format("https://user-%s-country-%s:%s@%s", username, country, password, proxy));
String basicAuth = new String(
Base64.getEncoder()
.encode(
proxyURI.getUserInfo().getBytes()));
String response = Request.get(targetUrl)
.addHeader("Proxy-Authorization", "Basic " + basicAuth)
.viaProxy(HttpHost.create(proxyURI))
.execute().returnContent().asString();
System.out.println(response);
}
}
using System.Net;
// .NET currently does not support HTTPS proxies
var proxy = new WebProxy {
Address = new Uri("http://ddc.oxylabs.io:8001"),
Credentials = new NetworkCredential(
userName: "user-USERNAME-country-COUNTRY",
password: "PASSWORD"
)
};
var httpClientHandler = new HttpClientHandler {Proxy = proxy};
using var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
var result = await client.GetStringAsync("https://ip.oxylabs.io/location");
Console.WriteLine(result);