ios - swift - 如何从服务器获取 JSON 响应

标签 ios json swift swift4 urlsession

我正在将此数据发送到服务器,并且希望它做出响应。尝试了这段代码,但它不起作用。

    let parameters = [ "imie" : (imie), "nazwisko" : (nazwisko), "telefon" : (telefon), "adres" : (adres), "miasto" : (miasto), "kod" : (kod), /*"powiat" : (powiat), "wojewodztwo" : (wojewodztwo),*/ "opis" : (selectedvalue)   ]


    let url = URL(string: "http://www.hetman.pl/post1.php")!
    var request = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/json", forHTTPHeaderField: "Accept")
    request.setValue("application/x-www-form-urlencoded; charset=utf-8", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.setBodyContent(parameters)

    let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in
        if error != nil{
            return
        }

        do{
            let t = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String:AnyObject]
            print(t as? String)
        } catch{
            print("Error 43 -> \(error)")
        }


    }

请求正确并且服务器正在正确处理数据,但响应给出了此错误:

Error 43 -> Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 3." UserInfo={NSDebugDescription=Invalid value around character 3.}

那么问题是,如何从服务器取回数据?

最佳答案

请检查此网址的响应是否仅为 JSON。您可能会收到 XML 或字符串响应。

如果您收到字符串响应,请尝试以下行:

let stringResponse = String(data: data!, encoding: String.Encoding.utf8) as String!

如果您收到 XML 响应,请尝试以下行:

let xmlDictionary = try XMLSerialization.xmlObject(with: data!) as? [String: Any]

关于ios - swift - 如何从服务器获取 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52073077/

相关文章:

java - 如何处理请求参数中的 Json 和 HTML santization?

swift - 使用枚举迭代可选值

android - snapshot.hasData 总是返回 false

ios - 如何使用 SDWebImage 调整 UIImage 的大小?

json - django rest框架-请求上下文 key 错误

javascript - 如何在 AngularJS ng-repeat 中对 Json 数组值求和

当 SKPhysicsBody.node -> SKLabelNode 时出现 Swift ClassCastException。为什么?

ios - 如何在 Moya 中设置基本身份验证用户名和密码?

iOS 应用程序 : running on simulator but not building the. 应用程序

c++ - 在 iOS 上使用 C++ 访问 SQLite 数据库?