HTTParty പ്രോക്സി പ്രാമാണീകരണം: ഹോസ്റ്റ്, പോർട്ട്, ഉപയോക്തൃനാമം, പാസ്വേഡ്
HTTP പ്രോക്സി ഹോസ്റ്റും സംഖ്യാത്മക പോർട്ടും ഐച്ഛിക പ്രോക്സി ക്രെഡൻഷ്യലുകളും നേരിട്ട് HTTParty അഭ്യർത്ഥനയിലേക്ക് നൽകുക, API ടോക്കൺ അതിന്റെ സ്വന്തം ഹെഡറിൽ നിലനിർത്തുക.
HTTParty ഫോർവേഡ് പ്രോക്സിയെ അഭ്യർത്ഥനാ ഓപ്ഷനുകളായി സ്വീകരിക്കുന്നു. സേവനത്തിന്റെ URL ആദ്യ ആർഗ്യുമെന്റായി നിലനിർത്തുക:
response = HTTParty.get(
'https://api.example/items',
http_proxyaddr: 'proxy.example',
http_proxyport: 8080,
http_proxyuser: ENV.fetch('PROXY_USER'),
http_proxypass: ENV.fetch('PROXY_PASSWORD'),
headers: { 'Authorization' => "Bearer #{ENV.fetch('API_TOKEN')}" },
open_timeout: 5,
read_timeout: 15
)
puts response.code
പ്രോക്സി ഹോസ്റ്റും പോർട്ടും ഇടനിലക്കാരനെ സൂചിപ്പിക്കുന്നു. പ്രോക്സി ഉപയോക്തൃനാമവും പാസ്വേഡും അവിടെ പ്രാമാണീകരിക്കപ്പെടുന്നു. Authorization ഹെഡർ API-യുടേതാണ്, അതിന്റെ അക്കൗണ്ട് തികച്ചും വ്യത്യസ്തമായിരിക്കാം.
പ്രാമാണീകരണമില്ലാത്ത പ്രോക്സിക്ക് http_proxyuser, http_proxypass ഒഴിവാക്കുക. അനുവദിച്ച പൊതു പാതയിൽ പൊതു API അഭ്യർത്ഥനയ്ക്ക് HTTP പ്രോക്സി പട്ടികയിൽ നിന്ന് HTTP വിലാസം എടുക്കുക, അഭ്യർത്ഥനയിലോ ക്ലാസിന്റെ സ്ഥിരസ്ഥിതികളിലോ പ്രോക്സി ക്രെഡൻഷ്യലുകൾ നിലനിർത്താതെ. ഹോസ്റ്റ് ഫീൽഡ് പ്രോക്സി വിലാസമായി Net::HTTP-യിലേക്ക് നൽകുന്നു; ഹോസ്റ്റ്നാമം അതിന്റെ പോർട്ടിൽ നിന്ന് വേറിട്ട് നൽകുക, ലക്ഷ്യ URL അല്ലെങ്കിൽ PAC URL അല്ല.
HTTParty ഉൾപ്പെടുത്തുന്ന റാപ്പർ ക്ലാസിന് പകരമായി സ്ഥിരസ്ഥിതികൾ സജ്ജീകരിക്കാൻ അതിന്റെ http_proxy ക്ലാസ് മെത്തഡ് ഉപയോഗിക്കാം. അഭ്യർത്ഥനാ ഓപ്ഷനുകൾ അവ നൽകുന്ന കോളിന് ആ സ്ഥിരസ്ഥിതികളെ മറികടക്കുന്നു.
ഇത് HTTParty-യുടെ സ്ഥിരസ്ഥിതി കണക്ഷൻ അഡാപ്റ്ററെ വിവരിക്കുന്നു. ഇച്ഛാനുസൃത connection_adapter തന്റെ ഓപ്ഷനുകൾ വ്യാഖ്യാനിക്കാൻ ഉത്തരവാദിയാണ്, അതിനാൽ സാധുവായ ക്രമീകരണം അവഗണിക്കപ്പെട്ടതായി തോന്നുമ്പോൾ ആ അഡാപ്റ്റർ പരിശോധിക്കുക. HTTP നില പാഴ്സ് ചെയ്ത API ഡാറ്റയിൽ നിന്ന് വേറിട്ട് വായിക്കുക; വിജയകരമായ JSON പാഴ്സിംഗ് പ്രാമാണീകരണ ഫലമല്ല.