Pubsubhubbub在Rails上的应用。如何从POST请求中提取原始的POST主体内容?

10

我正在使用Rails设置pubsub enabled subscriber app时遇到了问题。我目前已经订阅了open hub pubsubhubbub.appspot.com并收到了该应用程序端点的ping通知。(现在我创建了一个计数器,每当端点被ping时就会增加)。但是我无法理解如何从POST中提取原始内容。我对PubSub不熟悉,并渴望进行实验。我看到了这篇博客文章,但它没有语言特定。


来源:Joseph Smarr: Implementing PubSubHubbub subscriber support: A step-by-step guide. http://josephsmarr.com/2010/03/01/implementing-pubsubhubbub-subscriber-support-a-step-by-step-guide/

现在你准备好了,神奇地接收来自ether的ping通知,每当你订阅的博客有新内容时!您将收到发送到指定回调URL的入站请求,而不会添加任何其他查询参数(即您将知道它是ping,而不是验证,因为不会有包含任何hub.mode参数)。相反,订阅的Feed的新条目将直接包含在请求的POST正文中,请求Content-Type为application/atom+xml,适用于ATOM Feed和application/rss+xml,适用于RSS Feed。根据您选择的编程语言,您需要找出如何提取原始的POST正文内容。例如,在PHP中,您将打开特殊的文件名php://input进行读取。

任何帮助将不胜感激。


关于 http://apidock.com/rails/ActionDispatch/Request/raw_post 怎么样? - hellvinz
你想要的答案是什么? - lulalala
1个回答

6

假设您正在运行Rails 3.x,但您没有明确说明。

要获取原始的POST请求正文,您只需在控制器中使用request.raw_post。这将给您一个长字符串,看起来像请求参数字符串:some_var = something&something_else=something_else ... 然后您可以解析它以获得所需的内容。

然而,查看您的开发日志以获取传入请求,并查看params哈希表是否不是更好的选择。服务应该在某个变量名下发布数据,例如上面的some_var,而params哈希表将包含仅包含该数据的params [: some_var]。换句话说,您无需自己挖掘它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接