使用 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 而在同一网络上。
我正在尝试将一些数据从我的应用程序传递到 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 而在同一网络上。