HTTParty force_encoding:encode_with_ruby_encoding

HTTParty force_encoding: encode_with_ruby_encoding

我最近从 0.14.0 更新到版本 0.15.2,当我尝试执行 #delete 时,我收到以下堆栈跟踪:

NoMethodError: undefined method `force_encoding' for nil:NilClass
from /Users/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/httparty-0.15.1/lib/httparty/request.rb:280:in `encode_with_ruby_encoding'
from /Users/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/httparty-0.15.1/lib/httparty/request.rb:316:in `_encode_body'
from /Users/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/httparty-0.15.1/lib/httparty/request.rb:322:in `encode_body'
from /Users/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/httparty-0.15.1/lib/httparty/request.rb:350:in `handle_response'
from /Users//.rben`enter code here`v/versions/2.4.0/lib/ruby/gems/2.4.0/gems/httparty-0.15.1/lib/httparty/request.rb:158:in `perform'
from /Users/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/httparty-0.15.1/lib/httparty.rb:563:in `perform_request'
from /Users/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/httparty-0.15.1/lib/httparty.rb:520:in `delete'
from /Users/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/httparty-0.15.1/lib/httparty.rb:617:in `delete'

我已恢复到 0.14.0 版,但问题没有再出现。我是 Ruby 的初学者,我不太确定此消息的含义。

如有任何帮助,我们将不胜感激。

如果您查看 https://github.com/jnunemaker/httparty/blob/e9f4624c1172120bbd39ddc636620a24fc9386b1/lib/httparty/request.rb#L278,您可以看到堆栈跟踪中引用的 force_encoding 方法。

似乎响应没有正文,因此在 nil 对象上调用此方法,这导致了错误。这似乎是 HTTParty 中的一个错误。如果你能找出重现步骤来始终如一地产生这个问题,你可以打开一个 github 问题供 HTTParty 人员进一步研究。