You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS中Swift调用PHP接口POST请求后如何获取echo返回内容

解决Swift获取PHP Echo纯文本响应的问题

Got it, let's fix this for you! 你的核心问题在于两点:一是当前代码打印了整个response对象,导致输出一堆冗余的状态码、请求头信息;二是你尝试把纯文本响应解析成JSON,这完全没必要(毕竟你的PHP只是输出普通字符串)。我们只需要调整Swift代码,直接提取PHP的echo内容即可。

修改后的Swift代码

let myUrl = URL(string: "http://www.swiftdeveloperblog.com/http-post-example-script/")!
var request = URLRequest(url: myUrl)
request.httpMethod = "POST"
let postString = "firstName=James&lastName=Bond"
request.httpBody = postString.data(using: .utf8)

let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
    if let error = error {
        print("请求错误: \(error.localizedDescription)")
        return
    }
    
    // 跳过冗余的response打印,直接处理有效数据
    guard let responseData = data else {
        print("未获取到响应数据")
        return
    }
    
    // 将返回的Data直接转为UTF-8字符串,这就是PHP echo的内容
    if let responseString = String(data: responseData, encoding: .utf8) {
        print("PHP响应内容: \(responseString)")
        // 这里可以直接用responseString做后续业务处理
    } else {
        print("无法将响应数据转换为字符串")
    }
}
task.resume()

关键调整说明

  • 移除冗余打印:删掉了print("response = \(response)"),避免输出状态码、请求头等无关信息
  • 去掉无用的JSON解析:你的PHP输出的是纯文本,不是JSON格式,原来的JSON解析逻辑会触发错误,直接删掉即可
  • 直接转换字符串:把返回的Data对象转换为UTF-8字符串,这一步就能精准拿到PHP中echo输出的内容
  • 增加安全校验:判断data是否为空、字符串转换是否成功,避免崩溃

PHP代码无需修改

你的PHP脚本保持原样就可以:

<?php echo 'You have successfully registered';?>

这样修改后,iOS应用只会打印出You have successfully registered,完全符合你的需求。

内容的提问来源于stack exchange,提问作者epiphany

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:03:39