Tôi đang làm việc trên ứng dụng Rails sử dụng HTTParty để thực hiện các yêu cầu HTTP. Làm thế nào tôi có thể xử lý các lỗi HTTP với HTTParty? Cụ thể, tôi cần phải nắm bắt HTTP 502 & 503 và các lỗi khác như lỗi kết nối bị từ chối và hết thời gian chờ.Làm cách nào để xử lý lỗi với HTTParty?
Trả lời
Ví dụ HTTParty::Response có thuộc tính code
chứa mã trạng thái của phản hồi HTTP. Nó được đưa ra như một số nguyên. Vì vậy, một cái gì đó như thế này:
response = HTTParty.get('http://twitter.com/statuses/public_timeline.json')
case response.code
when 200
puts "All good!"
when 404
puts "O noes not found!"
when 500...600
puts "ZOMG ERROR #{response.code}"
end
Câu trả lời này giải quyết lỗi kết nối. Nếu URL không tìm thấy mã trạng thái sẽ không giúp bạn. Cứu nó như thế này:
begin
HTTParty.get('http://google.com')
rescue HTTParty::Error
# don´t do anything/whatever
rescue StandardError
# rescue instances of StandardError,
# i.e. Timeout::Error, SocketError etc
end
Để biết thêm thông tin xem: this github issue
Không bao giờ bắt được mọi thứ. Bạn nên bắt lớp cơ sở lỗi 'HTTParty'. – Oleander
Có thể ý tưởng là bắt lỗi trong mã HTTParty. HTTParty có thể làm tăng các lỗi không phải là 'HTTParty :: Errors'. –
Nếu không có mạng nào cả, tôi nhận được một 'SocketError', chỉ cần một cái gì đó để nhận thức được. Bạn có thể thử rút cáp ethernet để xem điều này xảy ra. – Kris
Bạn cũng có thể sử dụng phương pháp ngữ tiện dụng như success?
hoặc bad_gateway?
theo cách này:
response = HTTParty.post(uri, options)
p response.success?
danh sách đầy đủ của phản ứng có thể có thể được tìm thấy dưới Net::HTTPResponse::CODE_TO_OBJ
không đổi.
- 1. Làm cách nào để xử lý các lỗi pthread_mutex_unlock?
- 2. Làm cách nào để xử lý lỗi tìm nạp NSFetchedResultsController?
- 3. xử lý lỗi với .post()
- 4. Xử lý lỗi với Fabric
- 5. Xử lý lỗi với Mongoose
- 6. Làm thế nào để chuyển base_uri với httparty
- 7. HTTParty với Proxy
- 8. Làm cách nào để xử lý ActivityNotFoundException?
- 9. Chiến lược xử lý lỗi và xử lý lỗi
- 10. Cách xử lý lỗi 404 với Ruby HTTP :: Net?
- 11. Xử lý lỗi PHP
- 12. Làm cách nào để xử lý dòng mới trong JSON?
- 13. Làm cách nào để khắc phục lỗi "[Lỗi 6] Trình xử lý không hợp lệ". với PySerial
- 14. Xử lý lỗi ASP.NET
- 15. xử lý lỗi malloc
- 16. Làm cách nào để xử lý các ngoại lệ REST?
- 17. Làm thế nào để gỡ lỗi chương trình với bộ xử lý tín hiệu cho SIGSEGV
- 18. Làm cách nào để xử lý nhập chéo?
- 19. Xử lý lỗi Asynctask
- 20. Xử lý lỗi ActiveResource
- 21. Cách xử lý đúng lỗi trong Express?
- 22. Cách xử lý ngoại lệ lỗi WCF
- 23. Làm thế nào để bắt lỗi không được xử lý với PHPseclib?
- 24. Làm thế nào để in một thông điệp trong việc xử lý với thử lỗi, bắt
- 25. Tôi làm cách nào để tạo bộ xử lý chú thích xử lý Biến cục bộ?
- 26. Làm cách nào để xử lý bản dịch cho ActiveModel?
- 27. Làm cách nào để xử lý cảnh báo LaTeX dưới dạng lỗi
- 28. Xử lý lỗi Socket.io
- 29. Làm cách nào để xử lý ngoại lệ?
- 30. Làm cách nào để xử lý báo cáo lỗi mẫu STL quá dài?
Cảm ơn! Đó là những gì tôi định làm. Đã tự hỏi nếu có cách nào khác để xử lý lỗi. – preethinarayan
Câu trả lời này không giải quyết được lỗi kết nối. – gtd
Như để bình luận của preethinarayan, nếu bạn muốn nắm bắt/giải cứu các lỗi thay vào đó, bạn luôn có thể làm điều gì đó như: tăng blablahblah nếu response.code! = 200 Tôi thực sự sẽ làm điều gì đó tương tự .. – user435779