首页 > 解决方案 > ios发送数据后php服务器没有响应

问题描述

我只想将设备令牌发送到 php 服务器并将其存储在 MySQL 中。但是无论我尝试过,php服务器都没有响应,我使用var_dump($_POST), var_dump($_GET), var_dump($_REQUEST), var_dump($_FILES);了,它只是空的。

ios代码在这里:

// send to server
let url = URL(string: "http://www.ios.jobyme88.com/KidsLearnHindi/connect-to-server.php?token=\(data.deviceToken)")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
  if let error = error {
    print ("error: \(error)")
    return
  }
  guard let response = response as? HTTPURLResponse else {
    return
  }
  print(response)
  print("send")
  
  if let mimeType = response.mimeType,
    mimeType == "application/json",
    let data = data,
    let dataString = String(data: data, encoding: .utf8) {
    print ("got data: \(dataString)")
  }
}
task.resume()

服务器代码就在这里:

<?php echo $_GET['token']; ?>

我曾经有一个工作代码,但我丢失了它,这个问题花了我两天时间。好奇怪。提前感谢您的帮助。

标签: phpios

解决方案


此 iOS 代码正在运行。更改是 1)我打印数据 2)因为我正在刷新网页,这是一个新请求,而不是 iOS 请求。

// send to server
let url = URL(string: "http://www.ios.jobyme88.com/KidsLearnHindi/connect-to-server.php?token=\(data.deviceToken)")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
    // check error
    if let error = error {
        print ("error: \(error)")
        return
    }
                
    // check response
    guard let response = response as? HTTPURLResponse,
    (200...299).contains(response.statusCode) else {
        print ("server error")
            return
    }
                
    // print data from server
    guard let data = data else {
        print("no data")
        return
    }

    let dataString = String(data: data, encoding: .utf8)
    print ("got data: \(dataString)")
    }

task.resume()

服务器.php

echo $_GET['token'];
echo "goood";

对于 POST,我仍在寻找一个测试工具来监控服务器数据输入流。


推荐阅读