JSON转换失败了

时间:2017-03-28 13:45:17

标签: ios swift3

请检查我的代码是否严重困在这个问题上。

JSON转换没有发生&它将进入捕获块和打印出错。

Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

我已尝试过在StackOverflow上建议的所有内容,但没有运气。

我已经修剪了我的代码以便更好地理解。

import Foundation


class Server
{

    class func convertStringToDictionary(_ data: Data) -> [String:Any]?
    {
        do
        {
            let convertedDict = try JSONSerialization.jsonObject(with: data, options: []) as? [String:Any]
            return convertedDict
        }

        catch let error as NSError
        {
            print(error)
        }

        return nil

    }

    class func registerUser( userInfo: String)
    {

        let url = URL(string: "http://132.148.18.11/missedprayers/welcome/register")!
        var request = URLRequest(url: url)
        request.httpMethod = "POST"

        let postString = "request=" + userInfo
        request.httpBody = postString.data(using: .utf8)

        //----------------------------------------

        let task = URLSession.shared.dataTask(with: request)
        {
            data, response, error in

            guard let data = data, error == nil
                else
            {
                print("error=\(error)")
                return
            }

            if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200
            {
                print("statusCode should be 200, but is \(httpStatus.statusCode)")
                print("response = \(response)")
            }

            //--------------


            let finalData = Server.convertStringToDictionary(data)
            print(finalData)
        }

        task.resume()

    }


    func submitBtnTapped(_ sender: AnyObject)
    {


        let userInfoDict = [
            "name":"Maaz Patel",
            "phoneNum":"+91899885623",
            "email":"maaz@gmail.com",
            "city":"pune",
            "country":"India",
            "dobEnglish":"11-02-1992",
            "app":"Dalail",
            "aqeeda":"Sufi",
            "gender":"male",
            "MCCycle":""
        ]


        //-------------------

        do
        {
            let jsonData = try JSONSerialization.data(withJSONObject: userInfoDict, options: [] )

            let jsonStr =  String.init(data: jsonData, encoding: String.Encoding.utf8)

            Server.registerUser(userInfo: jsonStr!)

        }
        catch let error as NSError
        {
            print(error)
        }
    }



}

考虑" SubmitBtnTapped"函数从某个地方调用。

当我尝试使用Postman时,它也在Android上使用相同的Web服务工作正常。 enter image description here

0 个答案:

没有答案