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

GET data to PHP method using URLSession - swift

我正在尝试将一些数据从我的应用程序传递到 php 脚本,但它总是 return 我失败了 Could not connect to server

但是当我将 link 复制到浏览器时,它像往常一样工作正常。我不知道为什么它在我的 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;

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

在您的 mac 终端 window 中输入 ifconfig,您将看到多个网络接口。你会有一个 127.0.0.1 可能叫做 lo0 并且可能会有其他像 en0 这样的另一个 IP 地址像 192.168.0.3.

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