使用URLSession将数据获取到PHP方法-Swift

时间:2019-01-10 09:35:06

标签: swift nsurlsession

我正在尝试将一些数据从我的应用程序传递到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 :(得分:0)

您正在使用本地回送IP地址,该地址无法通过物理设备或模拟器使用。

在Mac终端窗口中输入ifconfig,您将看到多个网络接口。您将拥有一个127.0.0.1,可能被称为lo0,并且可能还有其他类似en0的工厂,而另一个IP地址将是192.168.0.3

您将需要使用本地192.地址在同一网络上连接到本地计算机。