Failed to open TCP connection to https://www.example.com:80 (getaddrinfo: Name or service not known) (SocketError) のようなエラーが出たとき

Ruby です。

一つの解決法

誤っている例

MyApplication::Client.new(
  host: 'https://www.example.com',
  port: 80,
  username: 'MY_USERNAME',
  password: 'MY_PASSWORD',
  use_ssl: true,
)

一見誤りはないように見えます(見えました)。結構ハマりました*1

……よく見ると host にスキームがくっついてる……。

正しい例

MyApplication::Client.new(
  host: 'www.example.com',
  port: 80,
  username: 'MY_USERNAME',
  password: 'MY_PASSWORD',
  use_ssl: true,
)

補足

慌てて急いで書くと良くないことに遭遇してしまうという例です。しかも頭が沸騰しているから誤りに気づきにくい。

*1:情けない

Powered by はてなブログ