在Alamofire请求的正文中发送JSON数据

时间:2017-01-01 11:57:32

标签: php json api swift3 alamofire

我正在尝试使用Alamofire(版本4.0)进行API调用以提交一些数据。我认为请求已成功。但我遇到的麻烦是,在拨打电话时,我从服务器得到0字节FAILURE的响应。

我已经在StackOverflow上尝试了许多解决方案,但无法找到解决方案。谢谢你的帮助。

以下是我的Postman设置:

enter image description here

我的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} {status code:200,headers {       “Cache-Control”=“max-age = 0”;       连接=“保持活力”;       “Content-Length”= 0;       “Content-Type”=“text / html; charset = UTF-8”;       日期=“太阳报,2017年1月1日11:41:31 GMT”;       Expires =“Sun,2017年1月1日11:41:31 GMT”;       “Keep-Alive”=“timeout = 7,max = 100”;       Server =“Apache / 2.2.15(CentOS)”;       “X-Powered-By”=“PHP / 5.6.25”;   }}    [数据]:0字节   [结果]:FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength)   [时间轴]:时间线:{“请求开始时间”:504963459.698,“初始响应时间”:504963459.821,“请求完成时间”:504963459.821,“序列化完成时间”:504963459.821,“延迟”:0.123秒,“请求持续时间” :0.123秒,“序列化持续时间”:0.001秒,“总持续时间”:0.124秒}   可选(myurl.php?方法= GET_RECENT)   可选({URL:myurl.php?method = GET_RECENT} {状态代码:200,headers {       “Cache-Control”=“max-age = 0”;       连接=“保持活力”;       “Content-Length”= 0;       “Content-Type”=“text / html; charset = UTF-8”;       日期=“太阳报,2017年1月1日11:41:31 GMT”;       Expires =“Sun,2017年1月1日11:41:31 GMT”;       “Keep-Alive”=“timeout = 7,max = 100”;       Server =“Apache / 2.2.15(CentOS)”;       “X-Powered-By”=“PHP / 5.6.25”;   }})   可选(0字节)   FAILURE

1 个答案:

答案 0 :(得分:0)

我认为您设置的Postman设置无效。要在JSON请求中发送GET作为数据,您应使用raw选项,如下图所示。

enter image description here