繁体   English   中英

UIApplication.shared.open添加标题数据

[英]UIApplication.shared.open Add Header Data

我需要在Safari中打开一个指向页面的外部链接,但是使用url访问的服务器要求我需要验证标题中的IP地址。 如何通过UIApplication.shared.open传递标头数据?

有一个选项参数,但是如果这是用于传递标头数据(例如['header':_ipAddress])的正确参数,我找不到任何示例或文档。

下面是一个示例,其中我设置了仅在应用程序本身中打开的另一种请求的标头,但我不知道如何为UIApplication.shared.open执行此操作。

let newRequest = (self.request as NSURLRequest).mutableCopy() as! NSMutableURLRequest

    if let _ip = EDataManager.shared.ipAddressOfTheUser, _ip.length() > 0 {
        newRequest.setValue(_ip, forHTTPHeaderField: "ex_header")
    }
    URLProtocol.setProperty("true", forKey: EWebViewAssetDownloadProtocol.CustomKey, in: newRequest)
    let defaultConfigObj = URLSessionConfiguration.default
    let defaultSession = URLSession(configuration: defaultConfigObj, delegate: self, delegateQueue: nil)

    self.dataTask = defaultSession.dataTask(with: newRequest as URLRequest)
    self.dataTask!.resume()

不幸的是, UIApplication.openURL(:options:completion:)不支持此功能。 此外,您无法将URLRequest打开到另一个应用程序,因此实际上无法将标头字段传递到外部链接以在Safari中打开。

如果您可以控制外部API,则处理此问题的最佳方法是将URL查询参数传递到您打开的url中。 但是,您必须注意这一点,因为URL查询参数是用户可见的,因此您不能以这种方式传递任何敏感数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM