如何解决原始谷歌缩短后的URL

时间:2013-04-04 16:21:26

标签: c#

所以我有一个谷歌缩短的网址,一旦我点击它并点击我的控制器,我希望能够在解决之前看到原始的goo.gl网址是什么。我该怎么做呢?

我已尝试Request.UrlReferrer.AboluteUriSystem.Web.HttpContext.Current.Request.Url.AbsoluteUri,但似乎都没有效果。他们都只是返回已解决的绝对uri。对此的任何帮助将不胜感激。

以下是缩短网址的示例 - http://goo.gl/WSrJ6

这将使用户(至少在测试中)到localhost:81 / college / events / details / 23

所以基本上,当我点击详细控制器时,我如何获得原来缩短的网址?

3 个答案:

答案 0 :(得分:1)

好的,这感觉更像是一种解决方法,但是......

我认为没有办法从goog.gl服务中解析缩短的网址。但是,您可以向goog.gl发送仅使用缩短网址的HEAD HTTP动词的网络请求。

然后,在对HEAD请求的响应中,location标头将是原始网址(因为它将发回重定向请求301)。

您可以使用this tool查看回复。放入缩短的网址,然后在发布前选择HEAD动词。

答案 1 :(得分:1)

答案 2 :(得分:0)

任何正常配置的浏览器都会发送标头HTTP_REFERER。

不是简单的Request.UrlReferrer工作吗?或者,例如HttpContext.Current.Request.ServerVariables["HTTP_REFERER"]ServerVariables["HTTP_REFERER"]

这取决于您编码的位置,但重点是从请求中获取标题。

HTTP_REFERER应始终包含上一个(referer)网址。我不知道为什么你会在那里获得已解决的网址,除非它是第二次重定向(例如你的缩短程序指向http://server.com并且你的网络服务器配置为重定向丢失{{1到www)。

HTH

旧金山