CLOUDCITY PROXY · Dezvoltatori

Pornire rapidă: prima cerere proxy

Folosește endpoint-ul unui serviciu activ pentru o cerere mică spre un site pe care ai dreptul să îl accesezi.

Documentație revizuită la 5 octombrie 2026

1. Confirmă serviciul activ

Deschide portalul cu contul CloudCity existent. Selectează serviciul eligibil activ și afișează explicit datele de conectare. O comandă, o activare în curs sau previzualizarea publică nu este un endpoint utilizabil. Notează exact hostul, portul, protocolul și metoda de autentificare.

2. Configurează mediul

Exemplele folosesc PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASSWORD și TARGET_URL. Introdu valorile reale prin managerul de secrete sau mediul local; nu le salva în cod. Hostul .invalid afișat nu poate fi rezolvat intenționat. TARGET_URL trebuie să fie o pagină HTTPS mică, proprie sau autorizată.

3. Păstrează verificările transportului

Folosește protocolul suportat de serviciu. Un proxy HTTP poate crea tunel CONNECT către o țintă HTTPS; asta nu înseamnă că legătura spre proxy folosește TLS. Păstrează verificarea certificatului țintei. Configurează timeout de conectare și total înainte de cerere.

4. Inspectează rezultatul înainte de extindere

Verifică statusul și conținutul așteptat, nu doar succesul comenzii. 407 privește autentificarea proxy; 403 sau 429 pot proveni de la țintă ori din politica upstream. Oprește și depanează erorile repetate. Măsoară traficul pilotului și stabilește limite înainte de concurență mai mare.

Cerințe runtime

cURL și PHP necesită suport cURL; Python folosește requests; Node.js folosește undici și ProxyAgent; Go și Java folosesc biblioteci HTTP standard; C# folosește HttpClient. Instalează dependențele în proiectul propriu. Exemplele sunt rețete de integrare, nu execuție la distanță din pagină.

cURL · Exemplu, fără date reale
# Set these variables from your active service, locally.
# Example host: proxy.example.invalid (deliberately non-resolving).
curl --connect-timeout 10 --max-time 30 \
  --proxy "http://${PROXY_HOST}:${PROXY_PORT}" \
  --proxy-user "${PROXY_USER}:${PROXY_PASSWORD}" \
  --url "$TARGET_URL"

Python · Exemplu, fără date reale
import os
from urllib.parse import quote
import requests

user = quote(os.environ["PROXY_USER"], safe="")
password = quote(os.environ["PROXY_PASSWORD"], safe="")
host, port = os.environ["PROXY_HOST"], os.environ["PROXY_PORT"]
proxy = f"http://{user}:{password}@{host}:{port}"
response = requests.get(os.environ["TARGET_URL"],
    proxies={"http": proxy, "https": proxy},
    timeout=(10, 20), allow_redirects=False)
print(response.status_code)

PHP · Exemplu, fără date reale
<?php
$request = curl_init(getenv('TARGET_URL'));
curl_setopt_array($request, [
    CURLOPT_PROXY => getenv('PROXY_HOST').':'.getenv('PROXY_PORT'),
    CURLOPT_PROXYTYPE => CURLPROXY_HTTP,
    CURLOPT_PROXYUSERPWD => getenv('PROXY_USER').':'.getenv('PROXY_PASSWORD'),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_CONNECTTIMEOUT => 10,
    CURLOPT_TIMEOUT => 30,
]);
$response = curl_exec($request);
if ($response === false) { throw new RuntimeException('Request failed'); }
echo curl_getinfo($request, CURLINFO_RESPONSE_CODE);
curl_close($request);

Node.js · Exemplu, fără date reale
import { request, ProxyAgent } from 'undici';
const env = process.env;
const dispatcher = new ProxyAgent({
  uri: `http://${env.PROXY_HOST}:${env.PROXY_PORT}`,
  token: `Basic ${Buffer.from(`${env.PROXY_USER}:${env.PROXY_PASSWORD}`).toString('base64')}`,
  connect: { timeout: 10000 }
});
try {
  const result = await request(env.TARGET_URL, {
    dispatcher, signal: AbortSignal.timeout(30000),
    maxRedirections: 0
  });
  console.log(result.statusCode);
  await result.body.dump();
} finally { await dispatcher.close(); }

Go · Exemplu, fără date reale
package main

import ("fmt"; "net/http"; "net/url"; "os"; "time")

func main() {
    proxy := &url.URL{Scheme: "http",
        Host: os.Getenv("PROXY_HOST") + ":" + os.Getenv("PROXY_PORT"),
        User: url.UserPassword(os.Getenv("PROXY_USER"), os.Getenv("PROXY_PASSWORD"))}
    client := &http.Client{Timeout: 30 * time.Second,
        Transport: &http.Transport{Proxy: http.ProxyURL(proxy)},
        CheckRedirect: func(_ *http.Request, _ []*http.Request) error { return http.ErrUseLastResponse }}
    response, err := client.Get(os.Getenv("TARGET_URL"))
    if err != nil { fmt.Println("Request failed"); return }
    defer response.Body.Close()
    fmt.Println(response.StatusCode)
}

Java · Exemplu, fără date reale
// Java 11+. Verify the JDK proxy-authentication policy for HTTPS CONNECT.
import java.net.*;
import java.net.http.*;
import java.time.Duration;

class ProxyCheck {
  public static void main(String[] args) throws Exception {
    String host = System.getenv("PROXY_HOST");
    int port = Integer.parseInt(System.getenv("PROXY_PORT"));
    HttpClient client = HttpClient.newBuilder()
      .proxy(ProxySelector.of(new InetSocketAddress(host, port)))
      .connectTimeout(Duration.ofSeconds(10))
      .authenticator(new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
          if (getRequestorType() != RequestorType.PROXY ||
              !host.equalsIgnoreCase(getRequestingHost()) || getRequestingPort() != port) return null;
          return new PasswordAuthentication(System.getenv("PROXY_USER"),
            System.getenv("PROXY_PASSWORD").toCharArray());
        }
      }).build();
    HttpRequest request = HttpRequest.newBuilder(URI.create(System.getenv("TARGET_URL")))
      .timeout(Duration.ofSeconds(30)).GET().build();
    System.out.println(client.send(request, HttpResponse.BodyHandlers.discarding()).statusCode());
  }
}

C# · Exemplu, fără date reale
using System;
using System.Net;
using System.Net.Http;

var proxy = new WebProxy($"http://{Environment.GetEnvironmentVariable("PROXY_HOST")}:{Environment.GetEnvironmentVariable("PROXY_PORT")}") {
    Credentials = new NetworkCredential(
        Environment.GetEnvironmentVariable("PROXY_USER"),
        Environment.GetEnvironmentVariable("PROXY_PASSWORD"))
};
using var handler = new HttpClientHandler { Proxy = proxy, UseProxy = true, AllowAutoRedirect = false };
using var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };
using var response = await client.GetAsync(Environment.GetEnvironmentVariable("TARGET_URL"));
Console.WriteLine((int)response.StatusCode);

Exemplu, fără date reale. Consultă ghidul de pornire pentru variabile de mediu, TLS și instalare. Nu introduce secrete de producție într-o previzualizare publică. Citește ghidul de pornire →

Continuă cu

CLOUDCITY PROXY

Construiește integrarea cu așteptări clare.

Citește ghidul de conectare, compară cele patru familii sau discută configurația de care are nevoie proiectul.

Confidențialitate, pe scurt.

Alege scopurile pe care le permiți. Refuzul nu afectează contul, formularele sau cumpărarea unui serviciu.

Google Analytics ne ajută să înțelegem paginile comerciale și pașii de comandă. Nu trimitem datele profilului, domeniul tău sau conținutul tichetelor. Instrumentul rămâne oprit fără acord.

Politica privind cookie-urile
Cookie-uri necesare și alte detalii
Cookie-uri necesareMereu active · necesare funcționării

Sesiunea menține navigarea, iar tokenul de securitate protejează formularele; acestea expiră după 2 ore. Când alegi limba, cookie-ul cc_locale o reține timp de 365 de zile. Poți schimba limba oricând din meniu sau footer.

Preferința pentru această informare

Preferința păstrează versiunea, momentul și scopurile alese timp de 180 de zile, doar pe această gazdă și în acest browser. Nu conține numele sau adresa ta de e-mail. Poți retrage acordul oricând din acest panou.

Contul de client de pe my.cloudcity.ro folosește separat cookie-uri necesare autentificării și comenzilor. Detaliile complete sunt în politică. Poți redeschide oricând acest panou din „Setări cookie”, în footer.