簡體   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