Có thể thực hiện yêu cầu POST từ Ruby bằng open-uri không?Làm cách nào để tạo yêu cầu POST với uri mở?
Trả lời
Thật không may open-uri
chỉ hỗ trợ động từ GET
.
Bạn có thể thả xuống một cấp độ và sử dụng net/http
hoặc sử dụng rest-open-uri
, được thiết kế để hỗ trợ POST
và các động từ khác. Bạn có thể làm gem install rest-open-uri
để cài đặt.
Tôi cũng thực sự khuyên bạn nên rest-client. Đây là cơ sở tuyệt vời để viết ứng dụng khách API.
require 'open-uri'
require 'net/http'
params = {'param1' => 'value1', 'param2' => 'value2'}
url = URI.parse('http://thewebsite.com/thepath')
resp, data = Net::HTTP.post_form(url, params)
puts resp.inspect
puts data.inspect
Nó làm việc cho tôi :)
-1 này không được sử dụng OpenURI để xử lý kết nối, nó sử dụng Net :: HTTP. Trong ví dụ này, OpenURI chỉ được sử dụng để tải mô-đun URI. –
Ngoài ra bạn đã khai báo 'params' sau đó tham chiếu' truy vấn ' – KomodoDave
không quan trọng nếu nó đang sử dụng hay không. nếu mở-uri không thể làm điều đó, câu trả lời này sẽ giúp rất nhiều người. không có cách nào để downvote câu trả lời này – mask8
Đơn giản như nó được:
require 'open-uri'
require 'net/http'
response = Net::HTTP.post_form(URI.parse("https://httpbin.org/post"), { a: 1 })
puts response.code
puts response.message
puts response.body
tôi khuyên bạn nên sử dụng response.methods - Object.methods
để xem tất cả các phương pháp có sẵn, ví dụ message
, header,
Bonus: POST/DELETE yêu cầu:
puts Net::HTTP.new("httpbin.org").post("/post", "a=1").body
puts Net::HTTP.new("httpbin.org").delete("/delete").body
- 1. Làm cách nào để tạo yêu cầu POST JSON với LWP?
- 2. Yêu cầu POST với phần thân JSON
- 3. Làm cách nào để gửi yêu cầu POST trong RestSharp?
- 4. Cách gửi yêu cầu POST?
- 5. Làm thế nào để tạo một Yêu cầu HTTP Python với dữ liệu POST và Cookie?
- 6. Làm thế nào để POST yêu cầu sử dụng RestSharp
- 7. Yêu cầu POST (Javascript)
- 8. Làm cách nào để tạo POST bằng cách sử dụng X-HTTP-Method-Override với yêu cầu curl PHP?
- 9. Sự khác biệt giữa đá quý và yêu cầu (yêu cầu mở-uri)
- 10. lwp-yêu cầu trong vỏ: làm thế nào để làm cho yêu cầu POST với cơ thể?
- 11. Nguồn gốc yêu cầu POST
- 12. POCO C++ - NET SSL - cách POST yêu cầu HTTPS
- 13. Google plus Yêu cầu vấn đề URI
- 14. Yêu cầu POST bằng wrk?
- 15. Tôi làm cách nào để làm mới phiên trong khi yêu cầu POST?
- 16. Làm cách nào để tạo tham số WebMethod yêu cầu
- 17. Làm cách nào để giải quyết lỗi HTTP U14 "Yêu cầu URI quá dài"?
- 18. Nhận URI yêu cầu ban đầu với PrettyFaces
- 19. Làm thế nào để thực hiện một yêu cầu POST jsonp chỉ định contentType với jQuery?
- 20. Một cách hay để chuyển hướng bằng yêu cầu POST?
- 21. Làm cách nào để định cấu hình IIS để chấp nhận yêu cầu POST?
- 22. Tôi làm cách nào để gửi tệp trong yêu cầu POST?
- 23. Cách thực hiện yêu cầu HTTP POST trong ASP?
- 24. Rails datatables ajax json 414 yêu cầu URI quá lớn
- 25. yêu cầu POST của node.js
- 26. Yêu cầu AFNetworking và POST
- 27. Rails tạo ban hành yêu cầu GET thay vì yêu cầu POST
- 28. yêu cầu POST trong đường ray với siêu liên kết
- 29. Nút html có thể tạo trước yêu cầu POST không?
- 30. PHP Zend Framework - Làm thế nào để yêu cầu phân đoạn URI từ đối tượng yêu cầu?
Các liên kết bây giờ là: https://github.com/rest-client/rest-client –