HTTParty menerima proxy penerus sebagai opsi permintaan. Pertahankan URL layanan sebagai argumen pertama:

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 dan port proxy menandai perantara. Nama pengguna dan kata sandi proxy diautentikasi di sana. Header Authorization milik API, yang akunnya bisa sangat berbeda.

Untuk proxy tanpa autentikasi, hilangkan http_proxyuser dan http_proxypass. Untuk permintaan API publik pada rute publik yang diizinkan, ambil alamat HTTP dari daftar proxy HTTP tanpa menyimpan kredensial proxy di permintaan maupun di nilai default kelasnya. Kolom host diteruskan sebagai alamat proxy ke Net::HTTP; berikan nama host terpisah dari portnya, bukan URL tujuan atau URL PAC.

Kelas pembungkus yang menyertakan HTTParty dapat memakai metode kelas http_proxy untuk menetapkan nilai default sebagai gantinya. Opsi permintaan menimpa nilai default itu untuk panggilan yang menyertakannya.

Ini menjelaskan adapter koneksi bawaan HTTParty. connection_adapter khusus bertanggung jawab menafsirkan opsinya, jadi periksa adapter itu ketika pengaturan yang sah tampak diabaikan. Baca status HTTP terpisah dari data API yang diurai; penguraian JSON yang berhasil bukan hasil autentikasi.

Artikel terkait