2016-02-05 79 views
0

php脚本我尝试值发送到服务器,此代码由我在这一行有一个错误:请求与NSURLConnection的

let reply = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error: &error)

的错误是:额外的参数IN CALL“错误”

var yourUrl="mylink" 
let url = NSURL(string:yourUrl) 
let cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData 
var request = NSMutableURLRequest(URL: url!, cachePolicy: cachePolicy, timeoutInterval: 2.0) 
request.HTTPMethod = "POST" 

// set Content-Type in HTTP header 
let boundaryConstant = " 
V2ymHFg03esomerandomstuffhbqgZCaKO6jy"; 
let contentType = "multipart/form-data; boundary=" + boundaryConstant 
NSURLProtocol.setProperty(contentType, forKey: "Content-Type", inRequest: request) 

// set data 

var dataString = "my value" 

let requestBodyData = (dataString as NSString).dataUsingEncoding(NSUTF8StringEncoding) 
request.HTTPBody = requestBodyData 

var response: NSURLResponse? = nil 
var error: NSError? = nil 
let reply = NSURLConnection.sendSynchronousRequest(request, returningResponse:&response, error: &error) 

let results = NSString(data:reply!, encoding:NSUTF8StringEncoding) 

if let dataFromString = results!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) { 

let json = JSON(data: dataFromString) 


if(json=="0"){ 

print("\n Dati non validi"); 

} 

else{ 

print("\n Account creato"); 
} 
} 

回答

0

你不应该使用sendSynchronousRequest,因为它是一个阻塞调用。此外,它从iOS 9.0起已弃用。相反,你可以使用NSURLSession。试试下面的代码

var yourUrl="mylink" 
let URL = NSURL(string:yourUrl) 
let request:NSMutableURLRequest = NSMutableURLRequest(URL: URL) 
let boundaryConstant = "V2ymHFg03esomerandomstuffhbqgZCaKO6jy"; 
let contentType = "multipart/form-data; boundary=" + boundaryConstant 
NSURLProtocol.setProperty(contentType, forKey: "Content-Type", inRequest: request) 
var dataString = "my value" 
request.HTTPMethod = "POST" 
request.HTTPBody = (dataString as NSString).dataUsingEncoding(NSUTF8StringEncoding) 
let task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in 
    //reponse recieved 
    //in this case response string will be saved in data, its of type NSData 
    do{ 
     let str = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! [String:AnyObject] 
     print(str) 
    } 
    catch { 
     print("json error: \(error)") 
    } 
    }) 
task.resume() 
+0

好的,谢谢你,但是当我打印(响应)我有这样的结果:可选( {网址:MERL} {状态代码:200,头{ 连接=“保持-Alive“; ”Content-Length“= 0; ”Content-Type“=”application/json“; Date =”Fri,Feb Feb 2016 18:29:03 GMT“; ”Keep-Alive“= “timeout = 5,max = 100”; Server =“Apache/2.2.22(Ubuntu)”; “X-Powered-By”=“PHP/5.3.10-1ubuntu3.16”; }}) 我如何能够打印回报的价值? – rikideveloper

+0

而不是响应尝试访问'数据'值 –

+0

我该怎么办? – rikideveloper