外部APIを叩くときにFaradayを使って実装していたときに、本番環境ではうまくいくのにローカルの環境ではエラーでアクセスできなかった。
##コード
conn = Faraday.new
res = conn.post do |req|
req.url 'https://sample.com/api/sample'
req.headers['X_APP_API_TOKEN'] = 'amenboakainaaiueo'
req.headers['Accept'] = 'application/json'
req.headers['Content-Type'] = 'application/json'
req.body = '{friday: day13th}'
end
##エラー内容
:ConnectionFailed: Failed to open TCP connection to :80 (Connection refused - connect(2) for nil port 80)
意訳:httpじゃアクセスさせない、出直しなさい
##解決方法
conn = Faraday.new('https://sample.com/api/sample')
res = conn.post do |req|
req.url 'https://sample.com/api/sample'
req.headers['X_APP_API_TOKEN'] = 'amenboakainaaiueo'
req.headers['Accept'] = 'application/json'
req.headers['Content-Type'] = 'application/json'
req.body = '{friday: day13th}'
end
Faraday.newするときにhttpsでアクセスするよーってことを明示したら行けました。