Use your own proxies

Introduction

You can configure remote browsers to use your own authenticated proxies. This functionality helps you control the browser’s network connection and IP address, which is useful for tasks like automation, data scraping, and accessing geo-restricted content.

Configuring the Proxy with Authentication

Authenticated proxies must be configured when launching the browser, and authentication is handled by including credentials in the proxy URL.

1. Configure the Proxy with Authentication for the Browser

Here is a C# example showing how to configure and use an authenticated proxy with a browser managed by CloudBrowser.

using System;
using System.Net.Http;
using System.Threading.Tasks;
using PuppeteerSharp;

public class Program
{
    public static async Task Main(string[] args)
    {
        var serverUrl = "https://production.cloudbrowser.ai/api/v1/Browser/OpenAdvanced";
        var apiToken = "your-api-token"; // Replace with your actual API token

        var requestBody = new
        {
            Proxy = new 
            {
              Host = "my-proxy.com",
              Port = "8080",
              Username = "user",
              Password = "password"
            }
        };

        var jsonContent = new StringContent(JsonConvert.SerializeObject(requestBody), Encoding.UTF8, "application/json");

        // Create an HttpClient and include the API token in the request headers
        var httpClient = new HttpClient();
        httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiToken);

        // Request the WebSocket endpoint of the remote browser
        var response = await httpClient.PostAsync(serverUrl, jsonContent);
        
        // Get address value
        var responseContent = await response.Content.ReadAsStringAsync();
        dynamic jsonResponse = JsonConvert.DeserializeObject(responseContent);
        var browserWSEndpoint = jsonResponse.address;
        
        // Connect to the remote browser
        var browser = await Puppeteer.ConnectAsync(new ConnectOptions
        {
            BrowserWSEndpoint = browserWSEndpoint,
        });

        // Create a new page
        var page = await browser.NewPageAsync();

        // Navigate to a URL to verify the IP
        await page.GoToAsync("https://ifconfig.me");

        // Close the browser
        await browser.CloseAsync();
    }
}

Additional Considerations

  • URL Formatting: Ensure the proxy URL is correctly formatted to include authentication credentials.

  • Error Handling: Implement error handling to capture and manage possible issues when connecting to the proxy or remote browser.

Last updated