我希望分享指向某个页面的链接,但该页面的内容仅可通过提交表单获得。
这是一个例子: 我想看看加利福尼亚的零售商名单,这些零售商为美国造币厂出售金条。但是我必须提交表格才能得到结果: http://www.usmint.gov/mint_programs/american_eagles/index.cfm?action=lookup
我想看到的是一个中间站点,它基本上作为执行我的表单POST的代理。因此,我可以从此站点共享我的链接,任何点击该链接的人都会看到表单POST的输出(使用我之前告诉后代理站点使用的目标URL和表单数据)。
因此,这与URL缩短服务有类似的需求,我有一个URL(例如post-agent.com/ca-bullion),可以在Twitter上发布,或者在Digg或电子邮件中发布。然而,与URL缩短服务不同,由于明显的浏览器安全限制,结果页面仍然可以显示来自中介的URL(例如post-agent.com)。
因此,使用上面的示例,post-agent.com/ca-bullion请求只会响应以下结果:
$ lwp-request -m POST www.usmint.gov/mint_programs/american_eagles/index.cfm?action=lookup
state=CA&submit=GO
[Ctrl-D]
是的,输出会很难看(除非重写了图像URL的链接),但至少只需点击一下页面内容/数据。
这样的事情是否存在?
如果没有,应该吗?
答案 0 :(得分:0)
非常有趣的想法。
您描述它的方式,该服务必须充当一种代理。
这有问题,例如,如果POST请求的结果设置了cookie。此外,请求的来源将是“代理”服务器,而不是用户的IP。该服务还必须通过潜在的大量流量。
更可行的实现可能是提供带有表单的页面。表单将具有method="POST"
和来自URL预设的变量。表单将通过Javascript自动提交(使用户几乎看不到)或手动提交。
并非每项服务都适用于该方法,因为您必须期望某些网站在表单和其他检查中使用一次性令牌以防止cross-site request forgery。但是对于像你所展示的那样的简单服务,这可能会很好。
然而,我认为这对于最终用户来说很容易使用是很困难的。如果不使用浏览器工具检查发布的网站,他们如何将POST请求发送到您的表单中?