Как я могу разрешить только запросы локальной сети, которые не защищены в Swift iOS14

#swift #xcode #plist #ios14

#swift #xcode #список #ios14

Вопрос:

Я искал в Интернете и до сих пор не могу найти ответ.

Мое приложение взаимодействует с другими продуктами для умного дома в доме. Например, он может отправлять запросы в Philips Hue Bridge для управления источниками света с помощью POST-запросов. IP-адрес моего моста 192.168.0.12 . Я делаю запрос POST к этой конечной точке, однако это запрещено, поскольку соединение небезопасно.

Я все еще хочу сохранить настройку того, где внешние подключения к доменам безопасны, поскольку я подключаюсь к своему собственному серверу через домен, который является безопасным. Поэтому я хочу, чтобы локальные соединения через локальные IP-адреса были небезопасными.

Я пробовал это:

введите описание изображения здесь

Тем не менее, это не работает. Я даже пытался использовать Allow Arbitrary Loads только для тестирования, чтобы посмотреть, сработает ли это, и все равно не сработает.

Мой вызов API:

 func getPhilipsHueUsername(completion: @escaping (String?, Error?) -> Void){
    var bridgeIP = UserDefaults.standard.string(forKey: "bridgeIP")
    let url = "http://"   bridgeIP!   "/api"
    var request = URLRequest(url: URL(string: url)!)
    request.httpMethod = HTTPMethod.post.rawValue
    let body = [
        "devicetype": "test"
    ]
    do {
        let dataToS = try JSONSerialization.data(withJSONObject: body, options: .fragmentsAllowed)
        request.httpBody = dataToS
    }catch{
        print("Error creating data object")
        return
    }
    AF.request(request).responseJSON { (response) in
        switch response.result {
        case .success(let value):
            print(value)
            if(response != nil){
                let json = JSON(value)
                print(value)
            }
            return completion("",nil)
        case .failure(let error):
            return completion(nil, error)
        }
    }
}
  

Комментарии:

1. Можете ли вы опубликовать код для вашего вызова api? У меня нет проблем с подключением к локальным устройствам по IP

2. @valosip конечно, только что добавил их, извините за поздний ответ

3. @valosip может быть, потому, что я использую Alamofire?