Вызов моего собственного API для моего мобильного приложения - PullRequest
0 голосов
/ 09 октября 2019

Я вызываю свой собственный API для моего мобильного приложения и публикую значение из мобильного приложения в моем API, но он не работает. Вот мой код, который вызывает API, чтобы получить значение и отправить значение в мой API . Вот формулировка проблемы мое мобильное приложение все еще может работать, даже если значение не может быть сохранено в моем собственном API.

let headers = [
      "Content-Type": "application/json",
      "cache-control": "no-cache",
      "Postman-Token": "b839d806-4bd2-4247-9451-1d006a076bf4"
    ]
    let parameters = [
      "name": name,
      "icNumber": icNumber,
      "medicineType": medicineType,
      "amount": amount
    ] as [String : Any]

    do {
        let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])

       let request = NSMutableURLRequest(url: NSURL(string: "http://localhost:8080/post")! as URL,
                                               cachePolicy: .useProtocolCachePolicy,
                                           timeoutInterval: 10.0)
       request.httpMethod = "POST"
       request.allHTTPHeaderFields = headers
       request.httpBody = postData as Data

        print("post ")

       let session = URLSession.shared
       let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
         if (error != nil) {
            print(error as Any)
         } else {
           let httpResponse = response as? HTTPURLResponse
            print(httpResponse as Any)
         }
       })

       dataTask.resume()
    } catch {
        print(error)
    }

1 Ответ

0 голосов
/ 09 октября 2019

Поскольку ваш API доступен по незащищенному протоколу (http), iOS предотвратит любой вызов на него, вам нужно либо сделать его безопасным (https), либо добавить исключения для целей разработки.

Чтобы добавить исключение для определенного домена, добавьте в info.plist вашего приложения следующее:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSAllowsArbitraryLoads</key>
  <false/>
  <key>NSExceptionDomains</key>
  <dict>
    <key>your-domain-here.com</key>
    <dict>
      <key>NSIncludesSubdomains</key>
      <true/>
      <key>NSExceptionAllowsInsecureHTTPLoads</key>
      <true/>
    </dict>
  </dict>
</dict>

Замените your-domain-here.com своим доменом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...