我们怎样才能从短网址中获取完整的网址

时间:2018-04-04 09:27:57

标签: ios hyperlink

我有来自百度地图的sharable here,我想用短网址字符串获取完整的网址。我们怎么做? 例如,如果我打开相同的链接' https://j.map.baidu.com/YwUSO'在重新加载后在浏览器中我得到一个完整的链接,例如 https://map.baidu.com/?shareurl=1&poiShareUid=ecdb75e513cf93e16fa3ccc0

所以,我想在IOS应用程序中做同样的事情,我应该在应用程序中获得完整的URL,我们如何实现这一点。

2 个答案:

答案 0 :(得分:0)

对于iOS应用程序,我希望您使用UIWebView加载URL。您的类应符合UIWebViewDelegate。然后使用以下代码提取重定向的URL

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = [request mainDocumentURL];
    NSLog(@"The Redirected URL is: %@", url);
    // Return YES if you want to load the page, and NO if you don't.
    return NO;
}

答案 1 :(得分:0)

您可以做什么,执行请求并检索URL

URLResponse
let urlStr = "https://j.map.baidu.com/YwUSO"
let url = URL(string: "https://j.map.baidu.com/YwUSO")!

URLSession.shared.dataTask(with: url) { (data, urlResponse, error) in
    let expandedURL = urlResponse?.url?.absoluteString
    print("expandedURL GET: \(expandedURL ?? "Oops, not URL")")
}.resume()

还可以做些什么,应该做一点优化就是做一个" HEAD"请求(不会下载违反" GET&#34的内容),但您需要使用URLRequest而不仅仅是URL并指定其{{1}转到" HEAD"。

httpMethod

注意我为了测试目的而严重打开(使用"!")。