Получить данные в метод PHP, используя URLSession - swift - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь передать некоторые данные из моего приложения в php-скрипт, но он всегда возвращает меня, как Could not connect to server.

Но когда я скопировал ссылку в браузер, она работает как обычно. Я не знаю, почему это не работает в моем приложении для iOS.

Так я отправляю запрос, используя URLSession

guard let url = URL(string: "http://127.0.0.1:8000/app.php?token=\(deviceToken)") else {
        return
    }
var request = URLRequest(url: url.absoluteURL)
    request.httpMethod = "GET"
    let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
        if error == nil {
            guard let dataReq = data else {
                completionHandler(false, (error?.localizedDescription)!)
                return
            }
            do {
                let json = try JSONSerialization.jsonObject(with: dataReq, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String:Any]
                if let jsonData = json {
                    print("===== This is jsonData \(jsonData) =====")
                } else {
                    print("===== Cannot Get JSONDATA =====")
                }
            } catch {
                completionHandler(false, (error.localizedDescription))
            }

        } else {
            print("===== Error SENDING REQUEST \((error?.localizedDescription)!)")
            completionHandler(false, (error?.localizedDescription)!)
        }
    }
    task.resume()

Я хочу передать параметр с именем token в мой php-скрипт

Это мой php файл

<?php

  $device = $_GET['token'];
  $deviceToken = $device;


  echo $device;

1 Ответ

0 голосов
/ 10 января 2019

Вы используете локальный петлевой IP-адрес, который не будет работать через физическое устройство или симулятор.

введите ifconfig в окне терминала Mac, и вы увидите несколько сетевых интерфейсов. у вас будет один с 127.0.0.1, вероятно, называемый lo0, и, вероятно, будут другие, такие как en0, который будет иметь другой IP-адрес, такой как 192.168.0.3.

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

...