2016-11-28 12 views
0

Я реализовал приложение для видеонаблюдения для самостоятельного запуска, поэтому все веб-сервисы сделаны в Watch Watch. Кажется, что он отлично работает в watch OS 2. Но когда запрос сделан в watch OS 3, получив код состояния как 401.Watch OS 3 NSURLSession issue

Поток будет: 1. Выполнение логина после получения запроса на обслуживание веб-сервисов в iPhone и обмениваться логин подробности, чтобы смотреть приложение, чтобы инициировать тот же запрос в часах os.

Watch OS 1 & 2.x - Нет проблем Watch OS 3 - Получение успеха для запроса на вход и ошибка 401 для получения вызова сервисной информации. Обращаем ваше внимание, что код Watch OS 2 & 3 не имеет кодового изменения, также нет обработчика сеанса в задней части.

Любое тело, сталкивающееся с теми же проблемами или любым решением для этого? ,

ответ

2

Наконец-то получил решение, добавив ниже строки, которые он работал для меня.

if let httpResponse = response as? HTTPURLResponse, let fields = httpResponse.allHeaderFields as? [String : String] { 
        let cookies = HTTPCookie.cookies(withResponseHeaderFields: fields, for: response!.url!) 
        HTTPCookieStorage.shared.setCookies(cookies, for: response!.url!, mainDocumentURL: nil) 
       } 

Предполагаю, что Watch OS2 по умолчанию управляет кукисами, но Watch OS3 нет. Поэтому нам нужно вручную хранить файлы cookie.

+0

Большое вам спасибо за это. У меня была такая же проблема, и я не мог понять, почему это не сработает. Это исправляет все мои проблемы –

+0

спас мой день :) –