如何在swift 3中使用HTTP Post方法获取JSON数据?

时间:2016-10-15 11:14:16

标签: ios json swift

我在post方法中获取HTTP响应时感到困惑。当我检查邮递员的响应时,获得所需的响应并成功更新配置文件。但在程序上我得到错误通知。出了什么问题?怎么解决?请参考截图。提前谢谢!

代码我已尝试

override func viewDidLoad() {
        super.viewDidLoad()
        self.updateDetails()

    }


    func updateDetails()
    {

        let postString = "api=update_people&user_id=18&email=rajesh@gmail.com&first_name=Raejsh&phone=456562&age=26&gender=male&blood_group=A"

        print(postString)

        //  let alertMessage = alert()

        let url = NSURL(string: "http://kuruthi.in/portal/api/register")

        let request = NSMutableURLRequest(url: url as! URL)

        request.httpBody = postString.data(using: String.Encoding.utf8)
        request.httpMethod = "POST"
        request.addValue("123456", forHTTPHeaderField: "X-API-KEY")
        request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")


        let task = URLSession.shared.dataTask(with: request as URLRequest) { data,response,error in
            guard error == nil && data != nil else
            {

                print("Error:\(error)")
                return
            }

            let httpStatus = response as? HTTPURLResponse

            if httpStatus!.statusCode == 200
            {
                if data?.count != 0
                {
                    let responseString = String(data: data!, encoding: .utf8)
                    print(responseString)

                }
                else
                {
                    print("No data got from url!")

                }
            }
            else
            {

                print("error httpstatus code")
            }
        }
        task.resume()

    }

程序输出中的响应: enter image description here

邮递员的回应: enter image description here

1 个答案:

答案 0 :(得分:2)

您获取HTML代码的原因是您从Web服务收到一些错误,请查看输出日志中的“遇到PHP错误”消息。

邮递员的成功是因为您的请求是表单数据。将来自Raw的邮递员的请求与您正在生成的请求进行比较。

您可以参考此link来创建请求。但代码在Objective-Cand中,您可以使用此link转换代码,或者您可以使用Alamofire创建请求并引用此link来创建多部分表单数据请求Alamofire