最近,我从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的初学者,我不太清楚这条消息意味着什么。
任何援助都将不胜感激。
发布于 2017-05-15 16:30:54
如果查看https://github.com/jnunemaker/httparty/blob/e9f4624c1172120bbd39ddc636620a24fc9386b1/lib/httparty/request.rb#L278,可以看到堆栈跟踪中引用的force_encoding方法。
响应似乎没有主体,因此将对零对象调用此方法,这将导致错误。这似乎是HTTParty中的一个bug。如果您能够找出复制步骤来一致地产生这个问题,那么您可以为HTTParty人员打开一个github问题,让他们进一步研究它。
https://stackoverflow.com/questions/43984391
复制相似问题