QProcess വഴി ആരംഭിക്കുന്ന ഡൗൺലോഡറിന്, തുടങ്ങുന്നതിന് മുമ്പ് ചൈൽഡിന്റെ എൻവയോൺമെന്റ് കെട്ടിപ്പടുക്കുക:

auto* download = new QProcess(parent);
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("https_proxy", "http://proxy.example:8080");
download->setProcessEnvironment(env);
download->start("curl", {"--head", "https://www.example.com/"});

ഈ Qt ഭാഗം നിലവിലുള്ള ഒരു പാരന്റ് ഒബ്ജക്ട്, ഇവന്റ് ലൂപ്പ്, ചൈൽഡിന് ലഭ്യമായ curl എന്നിവ അനുമാനിക്കുന്നു. പ്രവർത്തിക്കുമ്പോൾ QProcess ജീവനോടെ നിർത്തുക, അതിന്റെ പൂർത്തീകരണ, പിശക് സിഗ്നലുകൾ ആപ്ലിക്കേഷനിൽ കൈകാര്യം ചെയ്യുക. പ്രോക്സി ക്രെഡൻഷ്യലുകൾ ക്രമീകരിക്കാത്ത ഈ പൊതു സൈറ്റ് പരിശോധനയ്ക്ക്, HTTP പ്രോക്സി പട്ടികയിൽനിന്ന് ചൈൽഡിന്റെ പ്രോക്സി മൂല്യത്തിന് സാധ്യമായ HTTP എൻഡ്പോയിന്റുകൾ ലഭ്യമാണ്.

systemEnvironment-ൽ നിന്ന് തുടങ്ങുന്നത് PATH പോലുള്ള പാരമ്പര്യ മൂല്യങ്ങൾ സംരക്ഷിക്കുന്നു. അല്ലാതെ ശൂന്യമായ എൻവയോൺമെന്റ് നിർമ്മിച്ച് ഒരു പ്രോക്സി വേരിയബിൾ ചേർത്താൽ ആ മറ്റ് എൻട്രികൾ ഒഴിവാകും.

വേരിയബിളിന്റെ പേരാണ് കീ. export ഒരു ഷെൽ കമാൻഡാണ്, ആ കീയുടെ ഭാഗമല്ല, QProcess ആദ്യം പ്രവർത്തിപ്പിക്കേണ്ട എക്സിക്യൂട്ടബിളുമല്ല. എൻവയോൺമെന്റ് നേരിട്ട് നൽകുന്നത് URL-ന് ചുറ്റും ഷെൽ കമാൻഡ് നിർമ്മിക്കുന്നതും ഒഴിവാക്കുന്നു.

setProcessEnvironment അതിന് ശേഷം ആരംഭിക്കുന്ന പ്രോസസ്സിന് ബാധകമാണ്. ഇതിനകം പ്രവർത്തിക്കുന്ന ചൈൽഡിന്റെയോ Qt ആപ്ലിക്കേഷൻ ആരംഭിച്ച ഷെല്ലിന്റെയോ എൻവയോൺമെന്റ് ഇത് മാറ്റുന്നില്ല.

തിരഞ്ഞെടുത്ത ഡൗൺലോഡർ ഈ വേരിയബിൾ മനസ്സിലാക്കണം. ഈ ഉദാഹരണം curl-ന്റെ HTTPS അഭ്യർത്ഥനയ്ക്ക് ചെറിയ അക്ഷരത്തിലുള്ള https_proxy ഉപയോഗിക്കുന്നു, പാരമ്പര്യ ഒഴിവാക്കൽ ഇൻപുട്ടുകൾ സൂക്ഷിക്കുന്നു. മറ്റൊരു ചൈൽഡ് പ്രോഗ്രാമിന് മറ്റൊരു പ്രോക്സി ഇന്റർഫേസ് ഉണ്ടാകാം.

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