我正在Android环境中开发一个网络浏览器,当我在谷歌搜索,然后我得到谷歌搜索结果列表。这些结果的网址是这样的:
此google网址将我发送到真实网页:http://www.test.com
Google使用这种类型的网址来跟踪用户点击的链接。但是,对我来说,我需要真正的网址,所以有没有办法从谷歌重定向网址(http://www.google.ca/url?sa=)获取真正的网址(http://www.test.com) t& source = web& cd = 1& ved = 0CDUQFjAA& url = http%3A%2F%2Fww ...)
我不希望从长字符串中对子网进行子字符串并进行一些替换以获取真正的页面网址,因为这不是一种可靠的方法,因为我将依赖于谷歌网址结构,也许他们会改变他们的将来的参数名称,所以我的方法在这种情况下不起作用......
所以,我想知道是否有办法知道什么网址有重定向链接发送给我
提前感谢。
答案 0 :(得分:2)
如果您仔细查看,Google会返回http://www.google.ca/url?xxx=...&yyy=...&url=real_url&zzz=之类的内容...也就是说,真实网址位于Google返回的网址的url
GET参数中。您需要做的就是解析谷歌返回的网址 - 真正的网址将在响应的url
GET参数中。不要忘记对其进行url_decode
。
另一种方法是获取google返回的完整网址并对其执行HTTP GET。您应该收到301或302重定向。从该响应中,读取location
标题的值 - 这将是您的真实网址。
答案 1 :(得分:0)
请记住,Google可以更改其提供的链接,只需使用搜索结果中网站的“真实”网址即可。
在可预见的未来,一个强有力的方法是:
location
标题。如果您能够在出现任何故障时进行记录,则可以检查出现了什么问题以及原因。