2010-03-09 29 views
10

Tôi gặp sự cố khi thiết lập ứng dụng người đăng ký đã bật pubsub bằng đường ray. Tôi hiện đã đăng ký với trung tâm mở pubsubhubbub.appspot.com và đang nhận ping đến điểm cuối của ứng dụng của tôi. (như bây giờ tôi đã tạo ra một truy cập mà tăng mỗi khi điểm kết thúc được ping). Nhưng tôi không thể hiểu được làm thế nào để trích xuất nội dung cơ thể POST thô từ POST. Tôi mới đến pubsub và đang mong muốn thử nghiệm với nó. Tôi đã xem qua bài đăng trên blog này nhưng nó không phải là ngôn ngữ cụ thể.Pubsubhubbub trên Rails. Làm thế nào để trích xuất nội dung cơ thể POST thô từ yêu cầu POST?


Nguồn: Joseph Smarr: Triển khai PubSubHubbub hỗ trợ người đăng ký: Hướng dẫn từng bước. http://josephsmarr.com/2010/03/01/implementing-pubsubhubbub-subscriber-support-a-step-by-step-guide/

Bây giờ bạn đã sẵn sàng cho ping pay-out-kỳ diệu nhận từ ête mỗi khi blog bạn đã đăng ký có nội dung mới! Bạn sẽ nhận được yêu cầu gửi đến URL gọi lại được chỉ định mà không cần bất kỳ thông số truy vấn bổ sung (tức là bạn sẽ biết là ping và không xác minh vì sẽ không có bất kỳ thông số hub.mode nào được bao gồm). Thay vào đó, các mục nhập mới của nguồn cấp dữ liệu đăng ký sẽ được bao gồm trực tiếp trong nội dung POST của yêu cầu , với yêu cầu Loại nội dung của ứng dụng/atom + xml cho nguồn cấp dữ liệu ATOM và application/rss + xml cho RSS nguồn cấp dữ liệu. Tùy thuộc vào ngôn ngữ lập trình của bạn lựa chọn, bạn cần phải tìm hiểu cách trích xuất nội dung cơ thể POST . Ví dụ: trong PHP bạn sẽ fopen tên tệp đặc biệt php: // đầu vào để đọc nó.

Mọi trợ giúp sẽ được đánh giá cao.

+0

Điều gì về http://apidock.com/rails/ActionDispatch/Request/raw_post – hellvinz

+0

Câu trả lời bạn là gì? – lulalala

Trả lời

6

Bạn không nói nhưng tôi giả sử bạn đang chạy Rails 3.x?

Để có được thân POST thô, bạn chỉ cần sử dụng request.raw_post trong bộ điều khiển của mình. Điều này sẽ cung cấp cho bạn một chuỗi dài trông giống như một chuỗi tham số yêu cầu: some_var = something & something_else = something_else ... mà bạn có thể phân tích cú pháp để nhận được những gì bạn muốn.

Tuy nhiên, hãy xem nhật ký phát triển của bạn để có yêu cầu đến và xem liệu hàm băm params có phải là một tùy chọn tốt hơn cho bạn hay không. Dịch vụ sẽ đăng dữ liệu dưới một số tên biến, chẳng hạn như some_var ở trên và hàm băm params sẽ giữ một tham số [: some_var] chỉ chứa dữ liệu đó. Bạn không cần phải tự đào nó ra theo cách khác.

Các vấn đề liên quan