Uwierzytelnianie przez proxy w HTTParty: host, port, nazwa użytkownika i hasło
Przekaż host proxy HTTP, numeryczny port i opcjonalne dane logowania proxy bezpośrednio do żądania HTTParty, zachowując token API w jego własnym nagłówku.
HTTParty przyjmuje proxy forward jako opcje żądania. Zachowaj adres URL usługi jako pierwszy argument:
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
Host i port proxy wskazują pośrednika. Nazwa użytkownika i hasło proxy są tam uwierzytelniane. Nagłówek Authorization należy do API, którego konto może być zupełnie inne.
Dla proxy bez uwierzytelniania pomiń http_proxyuser i http_proxypass. W przypadku publicznego żądania API na dozwolonej trasie publicznej weź adres HTTP z listy proxy HTTP, nie zachowując danych logowania proxy ani w żądaniu, ani w wartościach domyślnych klasy. Pole hosta jest przekazywane jako adres proxy do Net::HTTP; podaj nazwę hosta oddzielnie od portu, a nie adres docelowy ani adres PAC.
Klasa opakowująca zawierająca HTTParty może zamiast tego użyć swojej metody klasowej http_proxy do ustawienia wartości domyślnych. Opcje żądania zastępują te wartości domyślne w wywołaniu, które je podaje.
Opisuje to domyślny adapter połączeń HTTParty. Własny connection_adapter odpowiada za interpretację swoich opcji, więc sprawdź ten adapter, gdy prawidłowe ustawienie wydaje się ignorowane. Czytaj status HTTP oddzielnie od przetworzonych danych API; udane przetworzenie JSON nie jest wynikiem uwierzytelnienia.