[Ruby] http通信する時の注意点

Rubyでhttp通信するコードをかいたら、変なところでハマったので忘備録として残します。 http通信するには、Net::HTTPを使うのですが、なぜか例外が発生して困りました。 ソースコードにコメントを書きましたが、レスポンスを取得した時に、response.valueをCallすると例外が発生します。 (responseを確認して、成功でないときにvalueをすると例外になる) Rubyのリファレンスを読むと丁寧に記載されているのです。 Rubyのリファレンスは読みやすいので、良いです。 ```ruby `gutter:true; web_uri = URI.parse(uri) http = Net::HTTP.new(web_uri.host, web_uri.port) http.use_ssl = (web_uri.scheme == "https") response = http.request_post(web_uri.path, params.to_json, make_headers) case response when Net::HTTPSuccess response when Net::HTTPClientError, Net::HTTPServerError response else # response.value raises Exception... raise Ondotori::WebAPI::Api::Errors::HttpAccessError.new("#{response.message}", "#{response.code}", 9995) end ``` ## 参考URL - [ソースコード](https://github.com/k28/ondotori-ruby-client/blob/main/lib/ondotori/webapi/httpwebaccess.rb) - [Net::HTTPResponse のリファレンス](https://docs.ruby-lang.org/ja/latest/class/Net=3a=3aHTTPResponse.html#I_VALUE) - [Ruby http通信のリファレンス](https://docs.ruby-lang.org/ja/latest/library/net=2fhttp.html)

0 件のコメント :

コメントを投稿