如何通过curl / wget获取正确的重定向网址?
目标网址:
;
(分号)转义为%3B
浏览器(如Chrome / FireFox)会将上述目标网址解析为包含commit
的以下网址,这是预期的结果。
但是,curl和wget都会将目标网址解析为包含tree
的以下网址,这不是预期的行为。
重定向网址的顺序包括commit
或tree
,它可能是gitweb问题,而不是curl / wget。
如何通过curl / wget获取正确的重定向URL?
改变用户代理是无能为力的。有任何想法吗?
我的curl命令如下:
$ curl -v -L -o output.html \
https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm-3.18.git%3Ba=commit%3Bh=430f3805c82634a3cb969d83acc4fc4c0ee6af27
答案 0 :(得分:1)
我发现问题是您需要对作为项目名称一部分的func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
Swifter.handleOpenURL(url)
return true
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
Swifter.handleOpenURL(url as URL)
return true
}
进行url编码。使用/
对;
进行编码会让我感到沮丧。
此外,由于URL包含%3B
,因此您需要引用它,因为这是一个命令分隔符。
在查询字符串中,;
应为p=kernel/msm-3.18
我能够使以下两个cURL命令工作:
p=kernel%2fmsm-3.18
或者简单地说,
curl -v -L -o output.html \
'https://www.codeaurora.org/gitweb/quic/la/?p=kernel%2fmsm-3.18.git;a=commit;h=430f3805c82634a3cb969d83acc4fc4c0ee6af27'
这可能是因为软件读取原始参数并且不解码%3B并且在查询字符串中需要分号。
希望有所帮助!