Documentation
  • Proxies
    • Quick Guide
    • Rotating Residential Proxies
      • Get Started
      • Making Requests
      • Location Settings
        • Country
        • State
        • City
        • ASN Targeting
        • Server Specific Entry Nodes
      • Session Control
      • Whitelisting IPs
      • Proxy Generator
  • Unlimited Residential Proxies
    • Get Started
    • Making Requests
    • Location Settings
      • Continent
    • Session Control
    • Whitelisting IPs
    • Proxy Generator
  • Static ISP Proxies
    • Location Choosing
    • Making Requests
    • Proxy Credential
    • Whitelisting IPs
  • Public API
  • General
    • Restricted Targets
    • Response Codes
  • Advanced Proxy Solution
    • Web Unblocker
      • Get Started
      • Making Requests
        • JavaScript Rendering
        • Geo-location
        • Session
        • Header
        • Cookie
        • Blocking Resource Loading
Powered by GitBook
On this page
  1. Advanced Proxy Solution
  2. Web Unblocker

Get Started

Using the web unblocker is simple. You need to send a request to our proxy service at unblock.pyproxy.com: with the required authentication -U "username:password" and the JavaScript rendering type X-Pyproxy-Render. Run the following command to access publicly available, legitimate web content:

curl -x unblock.pyproxy.io:16500 -U "username-zone-unblock:password" -H "X-Pyproxy-Render:png" "https://open.pyproxy.com" -k > pyproxy.png
import requests

# Use your Web Unblocker credentials here.
USERNAME, PASSWORD = 'YOUR_USERNAME', 'YOUR_PASSWORD'

# Define proxy dict.
proxies = {
  'http': f'http://{USERNAME}:{PASSWORD}@unblock.pyproxy.io:16500',
  'https': f'http://{USERNAME}:{PASSWORD}@unblock.pyproxy.io:16500',
}

headers = {
    'X-Pyproxy-Render': 'html'
}

response = requests.get(
    'https://open.pyproxy.com/',
    verify=False,  # It is required to ignore certificate
    proxies=proxies,
    headers=headers,
)

# Print result page to stdout
print(response.text)

# Save returned HTML to result.html file
with open('result.html', 'w') as f:
f.write(response.text)
<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://open.pyproxy.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PRoxy, 'http://unblock.pyproxy.io:16500');
curl_setopt($ch, CURLOPT_PRoxyUSERPWD, 'YOUR_USERNAME' . ':' . 'YOUR_PASSWORD');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt_array($ch, array(
    CURLOPT_HTTPHEADER  => array(
        'X-Pyproxy-Render: html'
    )
));

$result = curl_exec($ch);
echo $result;

if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);
package org.example;

import org.apache.hc.client5.http.auth.AuthScope;
import org.apache.hc.client5.http.auth.CredentialsProvider;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.impl.auth.CredentialsProviderBuilder;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder;
import org.apache.hc.client5.http.ssl.NoopHostnameVerifier;
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactoryBuilder;
import org.apache.hc.client5.http.ssl.TrustAllStrategy;
import org.apache.hc.core5.http.HttpHost;
import org.apache.hc.core5.http.io.entity.EntityUtils;
import org.apache.hc.core5.http.message.StatusLine;
import org.apache.hc.core5.ssl.SSLContextBuilder;

import java.util.Arrays;
import java.util.Properties;


public class Main {

public static void main(final String[] args)throws Exception {
final CredentialsProvider credsProvider = CredentialsProviderBuilder.create()
		.add(new AuthScope("HOST", POST), "USERNAME", "PASSWORD".toCharArray())
		.build();
final HttpHost target = new HttpHost("https", "https://open.pyproxy.com/", 443);
final HttpHost proxy = new HttpHost("https", "HOST", POST);
try (final CloseableHttpClient httpclient = HttpClients.custom()
		.setDefaultCredentialsProvider(credsProvider)
		.setProxy(proxy)
		// We recommend accepting our certificate instead of allowing insecure (http) traffic
		.setConnectionManager(PoolingHttpClientConnectionManagerBuilder.create()
				.setSSLSocketFactory(SSLConnectionSocketFactoryBuilder.create()
						.setSslContext(SSLContextBuilder.create()
								.loadTrustMaterial(TrustAllStrategy.INSTANCE)
								.build())
						.setHostnameVerifier(NoopHostnameVerifier.INSTANCE)
						.build())
				.build())
		.build()) {

	final RequestConfig config = RequestConfig.custom()
			.build();
	final HttpGet request = new HttpGet("/locations.html");
	request.addHeader("X-Pyproxy-Render","html");
	request.setConfig(config);

	System.out.println("Executing request " + request.getMethod() + " " + request.getUri() +
			" via " + proxy + " headers: " + Arrays.toString(request.getHeaders()));

	httpclient.execute(target, request, response -> {
		System.out.println("----------------------------------------");
		System.out.println(request + "->" + new StatusLine(response));
		EntityUtils.consume(response.getEntity());
		return null;
	});
}
package main

import (
	"crypto/tls"
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
)

func main() {
	const Username = "YOUR_USERNAME"
	const Password = "YOUR_PASSWORD"

	proxyUrl, _ := url.Parse(
		fmt.Sprintf(
			"http://%s:%s@unblock.pyproxy.io:16500",
			Username,
			Password,
		),
	)
	customTransport := &http.Transport{Proxy: http.ProxyURL(proxyUrl)}

	// We recommend accepting our certificate instead of allowing insecure (http) traffic
	customTransport.TLSClientConfig = &tls.Config{InsecureSkipVerify: true}

	client := &http.Client{Transport: customTransport}
	request, _ := http.NewRequest("GET",
		"https://open.pyproxy.com/",
		nil,
	)
	
	// Add custom cookies
        request.Header.Add("X-Pyproxy-Render", "html")
        
	request.SetBasicAuth(Username, Password)
	response, _ := client.Do(request)

	responseText, _ := ioutil.ReadAll(response.Body)
	fmt.Println(string(responseText))
}
package org.example;

import org.apache.hc.client5.http.auth.AuthScope;
import org.apache.hc.client5.http.auth.CredentialsProvider;
import org.apache.hc.client5.http.classic.methods.HttpGet;
import org.apache.hc.client5.http.config.RequestConfig;
import org.apache.hc.client5.http.impl.auth.CredentialsProviderBuilder;
import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
import org.apache.hc.client5.http.impl.classic.HttpClients;
import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder;
import org.apache.hc.client5.http.ssl.NoopHostnameVerifier;
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactoryBuilder;
import org.apache.hc.client5.http.ssl.TrustAllStrategy;
import org.apache.hc.core5.http.HttpHost;
import org.apache.hc.core5.http.io.entity.EntityUtils;
import org.apache.hc.core5.http.message.StatusLine;
import org.apache.hc.core5.ssl.SSLContextBuilder;

import java.util.Arrays;
import java.util.Properties;


public class Main {

public static void main(final String[] args)throws Exception {
final CredentialsProvider credsProvider = CredentialsProviderBuilder.create()
		.add(new AuthScope("HOST", POST), "USERNAME", "PASSWORD".toCharArray())
		.build();
final HttpHost target = new HttpHost("https", "https://open.pyproxy.com/", 443);
final HttpHost proxy = new HttpHost("https", "HOST", POST);
try (final CloseableHttpClient httpclient = HttpClients.custom()
		.setDefaultCredentialsProvider(credsProvider)
		.setProxy(proxy)
		// We recommend accepting our certificate instead of allowing insecure (http) traffic
		.setConnectionManager(PoolingHttpClientConnectionManagerBuilder.create()
				.setSSLSocketFactory(SSLConnectionSocketFactoryBuilder.create()
						.setSslContext(SSLContextBuilder.create()
								.loadTrustMaterial(TrustAllStrategy.INSTANCE)
								.build())
						.setHostnameVerifier(NoopHostnameVerifier.INSTANCE)
						.build())
				.build())
		.build()) {

	final RequestConfig config = RequestConfig.custom()
			.build();
	final HttpGet request = new HttpGet("/locations.html");
	request.addHeader("X-Pyproxy-Render","html");
	request.setConfig(config);

	System.out.println("Executing request " + request.getMethod() + " " + request.getUri() +
			" via " + proxy + " headers: " + Arrays.toString(request.getHeaders()));

	httpclient.execute(target, request, response -> {
		System.out.println("----------------------------------------");
		System.out.println(request + "->" + new StatusLine(response));
		EntityUtils.consume(response.getEntity());
		return null;
	});
}
using System;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;

namespace oxyApi
{
class Program
{
static async Task Main(string[] args)
{
	var webProxy = new WebProxy
	{
		Address = new Uri("http://unblock.pyproxy.io:16500"),
		BypassProxyOnLocal = false,
		UseDefaultCredentials = false,

		Credentials = new NetworkCredential(
		userName: "YOUR_USERNAME",
		password: "YOUR_PASSWORD"
		)
	};

	var httpClientHandler = new HttpClientHandler
	{
		Proxy = webProxy,
	};

	// We recommend accepting our certificate instead of allowing insecure (http) traffic
	httpClientHandler.ClientCertificateOptions = ClientCertificateOption.Manual;
	httpClientHandler.ServerCertificateCustomValidationCallback =
		(httpRequestMessage, cert, cetChain, policyErrors) =>
		{
			return true;
		};


	var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
	
	// Add custom cookies
	client.DefaultRequestHeaders.Add("X-Pyproxy-Render", "html");
	
	Uri baseUri = new Uri("https://open.pyproxy.com/");
	client.BaseAddress = baseUri;

	var requestMessage = new HttpRequestMessage(HttpMethod.Get, "");

	var response = await client.SendAsync(requestMessage);
	var contents = await response.Content.ReadAsStringAsync();

	Console.WriteLine(contents);
}
}
}
using System;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;

namespace pyproxyApi
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var webProxy = new WebProxy
            {
                Address = new Uri("http://unblock.pyproxy.io:16500"),
                BypassProxyOnLocal = false,
                UseDefaultCredentials = false,

                Credentials = new NetworkCredential(
                userName: "YOUR_USERNAME",
                password: "YOUR_PASSWORD"
                )
            };

            var httpClientHandler = new HttpClientHandler
            {
                Proxy = webProxy,
            };

            // We recommend accepting our certificate instead of allowing insecure (http) traffic
            httpClientHandler.ClientCertificateOptions = ClientCertificateOption.Manual;
            httpClientHandler.ServerCertificateCustomValidationCallback =
                (httpRequestMessage, cert, cetChain, policyErrors) =>
                {
                    return true;
                };


            var client = new HttpClient(handler: httpClientHandler, disposeHandler: true);
            
            // Add custom cookies
            client.DefaultRequestHeaders.Add("X-Pyproxy-Render", "html");
            
            Uri baseUri = new Uri("https://open.pyproxy.com/");
            client.BaseAddress = baseUri;

            var requestMessage = new HttpRequestMessage(HttpMethod.Get, "");

            var response = await client.SendAsync(requestMessage);
            var contents = await response.Content.ReadAsStringAsync();

            Console.WriteLine(contents);
        }
    }
}
PreviousWeb UnblockerNextMaking Requests

Last updated 4 days ago