പ്രോക്സി ഡാറ്റ എത്തിക്കുന്നു. നിങ്ങളുടെ റൈറ്റ് കോൾബാക്ക് തെറ്റായ മൂല്യം തിരികെ നൽകുന്നു. തുടർന്ന് libcurl നിർത്തുന്നു, ചുറ്റുമുള്ള കോഡ് മറ്റൊരു “പ്രോക്സി ഡൗൺലോഡ് പരാജയം” റിപ്പോർട്ട് ചെയ്യുന്നു.

കോൾബാക്ക് യഥാർത്ഥത്തിൽ എത്ര സ്വീകരിച്ച ബൈറ്റുകൾ കൈകാര്യം ചെയ്തു എന്ന് റിപ്പോർട്ട് ചെയ്യണം. വ്യത്യസ്ത എണ്ണം തിരികെ നൽകുന്നത് പരാജയത്തെ സൂചിപ്പിക്കുന്നു. ബോധപൂർവം ബ്ലോക്ക് ചെയ്യുന്ന എഴുത്ത് ലക്ഷ്യത്തിന്, ഒരു ഭാഗം ഇങ്ങനെയാകാം:

curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_WRITEFUNCTION,
    function ($handle, $chunk) use ($sink) {
        $written = fwrite($sink, $chunk);
        return $written === false ? 0 : $written;
    }
);

ഇത് നിലവിലുള്ള ആപ്ലിക്കേഷൻ handle-ഉം എഴുത്ത് ലക്ഷ്യവും സ്വന്തമാക്കുന്നു എന്ന് അനുമാനിക്കുന്നു. പരാജയപ്പെട്ടതോ ചെറുതോ ആയ എഴുത്ത് മുഴുവൻ ഭാഗവും സംരക്ഷിച്ചു എന്ന് നിശബ്ദമായി അവകാശപ്പെടുന്നതിന് പകരം നിർത്തുന്നു. ബ്ലോക്ക് ചെയ്യാത്ത ലക്ഷ്യത്തിന് ഉചിതമായ ബഫറിംഗും താൽക്കാലിക നിർത്തൽ/പുനരാരംഭവും ആവശ്യമാണ്; ചെറിയ ഭാഗം അത് നൽകുന്നില്ല.

കാണിക്കുന്ന പ്രതീകങ്ങളല്ല, ബൈറ്റുകൾ എണ്ണുക. ഡാറ്റ ബൈനറിയോ ഒരു മൾട്ടിബൈറ്റ് ടെക്സ്റ്റ് ശ്രേണിയുടെ ഭാഗമോ ആകാം. ഒരു കോൾബാക്ക് ഒരു വരി, ഒരു JSON രേഖ അല്ലെങ്കിൽ സേവനത്തിൽ നിന്നുള്ള ഒരു സന്ദേശം ആയിരിക്കണമെന്നില്ല.

ഇൻക്രിമെന്റൽ പാഴ്സിംഗിന് കോൾബാക്കുകൾക്കിടയിൽ സ്വന്തം അവസ്ഥ വേണം. നേരെമറിച്ച്, പൂർത്തിയാകുന്നതുവരെ ഓരോ ഭാഗവും ശേഖരിക്കുന്നത് ചെറിയ പരിമിതമായ പ്രതികരണത്തിന് ശരിയാകാം, പക്ഷേ വലിയ അല്ലെങ്കിൽ അനന്തമായ സ്ട്രീമിന് മെമ്മറി നയമല്ല.

കൈമാറ്റത്തിന്റെ ഫലവും കോൾബാക്ക് പരാജയത്തിന്റെ തെളിവും സൂക്ഷിക്കുക. സാധുവായ പ്രോക്സി പാത സ്ഥാപിച്ചതിന് ശേഷവും പ്രാദേശിക ഡിസ്ക് പിശകോ പാഴ്സർ നിർത്തലോ സംഭവിക്കാം. ഒരു പ്രിഫിക്സിന് ശേഷം നിർത്താൻ ഉദ്ദേശിക്കുന്നെങ്കിൽ, ആ ബോധപൂർവമായ കോൾബാക്ക് നിർത്തൽ വെവ്വേറെ അടയാളപ്പെടുത്തുക. പ്രോക്സി വിലാസം മാറ്റുന്നത് ഡാറ്റ സ്വീകരിക്കുന്നത് നിർത്തിയ ലക്ഷ്യത്തെ നന്നാക്കാൻ കഴിയില്ല.

അനുബന്ധ ലേഖനങ്ങൾ