【问题标题】:How to get JSON data with HTTP Post method in swift 3?如何在 swift 3 中使用 HTTP Post 方法获取 JSON 数据?
【发布时间】:2017-02-24 18:44:20
【问题描述】:

我通过在 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()

    }

程序输出中的响应:

邮递员回复:

【问题讨论】:

    标签: ios json swift


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,你是对的!我在原始请求中收到了邮递员的相同错误通知。但我不喜欢使用 3rd 方库。谢谢先生,我会参考提供的链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 2016-10-31
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多