【发布时间】:2017-05-15 21:04:40
【问题描述】:
我正在尝试使用Alamofire(4.0 版)进行 api 调用以提交一些数据。我认为请求已成功。但我遇到的问题是,在拨打电话时,我从服务器收到了 0 字节 FAILURE 的响应。
我已经尝试了 StackOverflow 上当前的许多解决方案,但找不到解决方案。感谢您的帮助。
这是我的Postman 设置:
我的 Swift 代码:
import UIKit
import Alamofire
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let headers: HTTPHeaders = [ "content-type": "x-www-form-urlencoded"]
Alamofire.request("myurl.php?method=GET_RECENT", headers: headers).responseJSON { response in
debugPrint(response)
print(response.request) // original URL request
print(response.response) // HTTP URL response
print(response.data) // server data
print(response.result) // result of response serialization
if let JSON = response.result.value {
print("JSON: \(JSON)")
}
}
}
}
我得到的错误是:
[请求]: myurl.php?method=GET_RECENT [响应]: { URL: myurl.php?method=GET_RECENT } { 状态码: 200, headers { “缓存控制”=“最大年龄=0”; 连接=“保持活动”; “内容长度”= 0; “内容类型”=“文本/html;字符集=UTF-8”; 日期 =“星期日,2017 年 1 月 1 日 11:41:31 GMT”; 过期 =“星期日,2017 年 1 月 1 日 11:41:31 GMT”; “保活”=“超时=7,最大值=100”; 服务器 = "Apache/2.2.15 (CentOS)"; "X-Powered-By" = "PHP/5.6.25"; } } [数据]: 0 字节 [结果]:失败: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength) [时间线]:时间线:{“请求开始时间”:504963459.698,“初始响应时间”:504963459.821,“请求完成时间”:504963459.821,“序列化完成时间”:504963459.821,“延迟”:0.123秒,“请求持续时间” :0.123 秒,“序列化持续时间”:0.001 秒,“总持续时间”:0.124 秒} 可选(myurl.php?method=GET_RECENT) 可选({ URL:myurl.php?method=GET_RECENT } { 状态码:200,标题 { “缓存控制”=“最大年龄=0”; 连接=“保持活动”; “内容长度”= 0; “内容类型”=“文本/html;字符集=UTF-8”; 日期 =“星期日,2017 年 1 月 1 日 11:41:31 GMT”; 过期 =“星期日,2017 年 1 月 1 日 11:41:31 GMT”; “保活”=“超时=7,最大值=100”; 服务器 = "Apache/2.2.15 (CentOS)"; "X-Powered-By" = "PHP/5.6.25"; } }) 可选(0 字节) 失败
【问题讨论】:
-
您确定您的请求正文有效吗?对我来说,这似乎不是一个有效的
JSON。 This 会更喜欢。 -
谢谢。我还不知道 JSON 请求与 html 有什么不同。那你能帮帮我吗?
-
你能显示生成 JSON 输出的代码吗?以及您尝试发布的完整 JSON?另外,您是从哪里收到此错误的?
-
这是邮递员视图。我想下载这个数据。 drive.google.com/file/d/0Byvzu5SJNHYuMTNiRG5UdTdMN2M/…
标签: php json api swift3 alamofire