У меня есть webView, в котором я загружаю URL-адрес. Мне нужно установить настраиваемый заголовок для этого URLRequest. Для первого запроса он работает как ожидалось, заголовок принимается на стороне сервера, и содержимое отображается соответствующим образом. Однако, если я открываю другую ссылку с отображаемой страницы, заголовки теряются и запрос отправляется без заголовка.URLRequest заголовок постоянный
Моя счастливая догадка заключается в том, что заголовок добавляется только в первый раз, и я должен добавлять его каждый раз, когда отправляется запрос на загрузку URL-адреса. Однако я не мог найти способ, где я могу это сделать.
заголовка В настоящее время я устанавливаю в viewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
myWebView.delegate = self
let url = URL(string: "https://mywebsite.com");
var requestobj = URLRequest(url: url!);
requestobj.addValue("my_request_id", forHTTPHeaderField: "X-Requested-With");
myWebView.loadRequest(requestobj);
}
Могу ли я что-то отсутствует, или я должен добавить заголовок в другом месте для каждого запроса?
Реализовать этот делегат функции 'Func WebView (_ Webview: UIWebView запрос shouldStartLoadWith: URLRequest, navigationType: UIWebViewNavigationType) -> Bool' для всех новый запрос в WebView этот метод вызывается вы можете получить URL запроса и вы можете создать новый запрос с добавленным заголовком, если URL-адрес не является родительским URL-адресом. – iphonic
Это может сработать. Однако запрос здесь _immutable_, поэтому мне нужно скопировать его на новый _var_, затем _addValue_, но как я могу его вернуть в webView? – Sapnix
Вам нужно создать новый запрос, если ваш WebView поддерживает навигацию, вам необходимо поддерживать массив URL-адресов, и вместо навигации вам нужно каждый раз создавать новый запрос из массива. – iphonic