הגדרת כתובת proxy מאומתת של Symfony CurlHttpClient
קודדו את רכיבי חשבון ה-proxy והשאירו מפורשים את יעד ה-API, חריגי no_proxy ובחירת התעבורה.
$proxy = 'http://'
. rawurlencode($proxyUser) . ':'
. rawurlencode($proxyPassword)
. '@proxy.example:8080';
$client = new \Symfony\Component\HttpClient\CurlHttpClient([
'proxy' => $proxy,
'no_proxy' => 'localhost,internal.example',
]);
$response = $client->request('GET', 'https://api.example/items');
$status = $response->getStatusCode();השפעת rawurlencode חלה על שם המשתמש והסיסמה בנפרד. קידוד כתובת ה-URL כולה יקודד גם את מפרידי הסכימה והסמכות הנחוצים לאיתור המאזין.
ה-proxy של HTTP מעביר את חיבור ה-API ב-HTTPS דרך CONNECT. חשבון ה-proxy אינו מחליף אימות API, ואין צורך לכפות http_version לערך 2.0 לצורך התחברות דרך ה-proxy.
הרשימה no_proxy המופרדת בפסיקים בוחרת את המארחים הישירים המיועדים. ללא אפשרויות מפורשות, הרכיב יכול לצרוך במקומם את הגדרות הסביבה הנתמכות שלו.
זה בונה את CurlHttpClient ישירות, מה שמחייב את תעבורת cURL של PHP. מפעל ה-Symfony הגנרי יכול לבחור backend אחר. אם נותרת דחייה, זהו את התעבורה שנבחרה ושמרו על שגיאת שלב ה-proxy במקום להעביר את החשבון לכותרת Authorization של היעד.