Swift解析http请求返回域错误
好的,我试图发出post请求,但是当我试图解析数据时,我总是得到一个错误域代码=3840。 在本例中,它显示了请求-响应的样子。 这是我的代码:Swift解析http请求返回域错误,swift,http,post,swift3,Swift,Http,Post,Swift3,好的,我试图发出post请求,但是当我试图解析数据时,我总是得到一个错误域代码=3840。 在本例中,它显示了请求-响应的样子。 这是我的代码: let parameters = ["txt": "כאב גרון","usr": "","pass": "" ,"ktivmale": false] as [String : Any] guard let url = URL(string: "http://www.nakdan.com/GetResult.aspx") else { re
let parameters = ["txt": "כאב גרון","usr": "","pass": "" ,"ktivmale": false] as [String : Any]
guard let url = URL(string: "http://www.nakdan.com/GetResult.aspx") else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("text/xml; charset=utf-8", forHTTPHeaderField: "Content-Type")
guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: []) else { return }
request.httpBody = httpBody
let task = URLSession.shared.dataTask(with: request as URLRequest){
data,response, error in
print(response!)
if error != nil{
print("error")
return
}
do {
let json = try JSONSerialization.jsonObject(with: data!, options: [])
DispatchQueue.main.async(execute: { () -> Void in
print(json)
SVProgressHUD.dismiss()
})
} catch {
print(error)
SVProgressHUD.dismiss()
SVProgressHUD.showError(withStatus: "Connection Failed.")
}
}
task.resume()
从您的链接中,响应是
#שםזיייאיסס㪠נים
这是XML,而不是JSON。因此,JSONSerialization.jsonObject(with:options:)
失败并抛出错误是很正常的。那么我该怎么做呢?要么服务器允许使用一些参数或头来响应JSON,只需修复该部分,要么需要解析XML(例如使用XMLParser,或者任何执行该操作的库)。这是两个完全不同的解析。搜索它;)我还没有找到适合我的东西。。你能给我举个例子吗?从你的链接来看,答案是שםזיייייססמ㪠נים
这是XML,不是JSON。因此,JSONSerialization.jsonObject(with:options:)
失败并抛出错误是很正常的。那么我该怎么做呢?要么服务器允许使用一些参数或头来响应JSON,只需修复该部分,要么需要解析XML(例如使用XMLParser,或者任何执行该操作的库)。这是两个完全不同的解析。搜索它;)我还没有找到适合我的东西。。你能给我举个例子吗?