dorpbn1027 2016-02-05 15:57
浏览 54

使用nsurlconnection请求php脚本

i try to send value to server with this code by i have an error on this line:

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

the error is : EXTRA ARGUMENT IN CALL "error"

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("
 Dati non validi");

}

else{

print("
 Account creato");
}
}
  • 写回答

1条回答 默认 最新

  • dousi6303 2016-02-05 16:11
    关注

    You should never use sendSynchronousRequest as it is a blocking call. Also it is deprecated from iOS 9.0 onwards. Instead you can use NSURLSession. Try out following code

    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()
    
    评论

报告相同问题?

悬赏问题

  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用