cak*_*s88 1 xml rest post xcode7 swift2
使用swift 2,新的语言.我的目标是向API发送一个简单的post请求,然后解析响应.我没有找到一个明确的方法来做到这一点,我所做的任何尝试都失败了.这是我有的:
func restURL() {
let xmlStr: String? = "<webservices><WebService type='test'><WSName>test</WSName><select>select * from receipts where id = '1234'</select></WebService></webservices>"
let session = NSURLSession.sharedSession()
let url = NSURL(string: "https://apiwebaddress.com/post" as String)!
let request = NSMutableURLRequest(URL: url)
let post:NSString = xmlStr!
let postData:NSData = post.dataUsingEncoding(NSUTF8StringEncoding)!
request.HTTPMethod = "POST"
request.HTTPBody = postData
request.setValue("0", forHTTPHeaderField: "Content-Length")
request.setValue("application/xml", forHTTPHeaderField: "Content-Type")
request.setValue("gzip,deflate", forHTTPHeaderField: "Accept-Encoding")
request.setValue("Keep-Alive", forHTTPHeaderField: "Connection")
Run Code Online (Sandbox Code Playgroud)
我相信我把它设置正确,我想发送它然后在响应的主体中获取xml,但我不知道从这里去哪里.我读过的所有内容都被弃用或混淆.有人可以用简单的术语解释如何实现我的目标吗?提前致谢
以下是根据我的研究我使用NSURLSession执行请求的剪辑.我添加了一些注释以使代码更具可读性:)
func restURL() {
{
let xmlStr: String? = "<webservices><WebService type='test'><WSName>test</WSName><select>select * from receipts where id = '1234'</select></WebService></webservices>"
var request = NSMutableURLRequest(URL: NSURL(string: url))
var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
let post:NSString = xmlStr!
let postData:NSData = post.dataUsingEncoding(NSUTF8StringEncoding)!
request.HTTPBody = postData
request.addValue("application/xml", forHTTPHeaderField: "Content-Type")
request.addValue("gzip,deflate", forHTTPHeaderField: "Accept-Encoding")
request.addValue("Keep-Alive", forHTTPHeaderField: "Connection")
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
println("Response: \(response)")
var strData = NSString(data: data, encoding: NSUTF8StringEncoding)
println("Body: \(strData)")
/*Parse data here */
// Here an example how it can be done in case of json response:
var err: NSError?
var json = NSJSONSerialization.JSONObjectWithData(data, options: .MutableLeaves, error: &err) as? NSDictionary
}) // var task
task.resume()
} // End restURL
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1750 次 |
最近记录: |