Gần đây tôi đã chuyển từ lớp Net: Ruby của Ruby sang chương trình còn lại 1.6.7.Cách xử lý các trường hợp ngoại lệ với Ruby Rest-Client
Tôi thấy việc yêu cầu biểu mẫu trở nên dễ dàng hơn nhiều, nhưng không giống như Net: yêu cầu HTTP, khi khách hàng còn lại nhận được bất kỳ thứ gì ngoài 200, yêu cầu sẽ bị chết. Tôi đã thử đặt một breakpoint trực tiếp sau khi RestClient.get, và nó không bao giờ bị tấn công - vì vậy tôi đang làm điều gì sai.
def get_member_using_card
resource = "#{@settings_app_uri}api/v1/card/#{self.member_card_num}?token=#{@settings.api_key}"
response = RestClient.get resource
if response.code == 200
card = JSON.parse(response.body)
self.customer_id = card['card']['customer_id']
else
return 0
end
end
mà kết quả trong stacktrace này:
RestClient::ResourceNotFound - 404 Resource Not Found:
/Users/tim/.rvm/gems/ruby-1.9.2-p290/gems/rest-client-1.6.7/lib/restclient/abstr
act_response.rb:48:in `return!'
/Users/tim/.rvm/gems/ruby-1.9.2-p290/gems/rest-client-1.6.7/lib/restclient/reque
st.rb:230:in `process_result'
/Users/tim/.rvm/gems/ruby-1.9.2-p290/gems/rest-client-1.6.7/lib/restclient/reque
st.rb:178:in `block in transmit'
/Users/tim/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/http.rb:627:in `start'
/Users/tim/.rvm/gems/ruby-1.9.2-p290/gems/rest-client-1.6.7/lib/restclient/reque
st.rb:172:in `transmit'
/Users/tim/.rvm/gems/ruby-1.9.2-p290/gems/rest-client-1.6.7/lib/restclient/reque
st.rb:64:in `execute'
/Users/tim/.rvm/gems/ruby-1.9.2-p290/gems/rest-client-1.6.7/lib/restclient/reque
st.rb:33:in `execute'
/Users/tim/.rvm/gems/ruby-1.9.2-p290/gems/rest-client-1.6.7/lib/restclient.rb:68
:in `get'
Ai đó có thể cho tôi biết làm thế nào để đánh giá đúng các mã phản hồi và giữ ngoại lệ này xảy ra ...?