Swift中的HTTP发送请求参数

时间:2016-10-22 10:21:24

标签: ios swift nsurlrequest

我想用用户名和密码发送请求从服务器获取身份验证密钥,这是我的代码,我不知道如何发送到参数请求,请帮我解决。

let urlString = "http://services.84069.ir/Restful/PaymentService.svc/authenticate"
func recentProfileURL(parameter : [String:String]?) -> NSURL {

    let component = NSURLComponents(string: urlString)!
    var queryItem = [NSURLQueryItem]()
    if let param = parameter {
        for (key,value) in param {
            let item = NSURLQueryItem(name: key, value: value)
            queryItem.append(item)
        }
    }
    component.queryItems = queryItem
    return component.URL!
}

func fetchCode(completion completion: (ProfileResult) -> Void){

    let request = NSURLRequest(URL: recentProfileURL(["UserName": self.userNameParam]))

    let task = session.dataTaskWithRequest(request, completionHandler: {
        (data, response, error)  in

        let result = self.processUserProfileRequest(data: data, error: error)
    completion(result)
    })
    task.resume()
}

我正在尝试发送用户名和密码以从服务器获取身份验证代码如何发送参数数组而不是一个参数?

3 个答案:

答案 0 :(得分:0)

这应该适合你:

var request = NSMutableURLRequest(URL: NSURL(string: ""http://services.84069.ir/Restful/PaymentService.svc/authenticate"))

var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"

var params = ["UserName":"UserName you wish to send", "password":"Password you wish to send"] as Dictionary<String, String>

var err: NSError?

request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &err)

var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
    print("Response: \(response)")`

}

答案 1 :(得分:0)

试试这个我希望它对你有所帮助!!

val obj = Map(1 -> List(1), 2 -> List(2, 3))
val l = List(1,2,3,4,5,6,7)

scala> obj.get(1)
res1: Option[List[Int]] = Some(List(1))

scala> l.flatMap(obj.get)
res2: List[List[Int]] = List(List(1), List(2, 3))

scala> l.flatMap(obj.get).flatten
res3: List[Int] = List(1, 2, 3)

答案 2 :(得分:0)

试试这段代码

let request = NSMutableURLRequest(URL: NSURL(string: "http://www.thisismylink.com/postName.php")!)
request.HTTPMethod = "POST"
let postString = "id=13&name=Jack"
request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in
    guard error == nil && data != nil else {                                                          // check for fundamental networking error
        print("error=\(error)")
        return
    }

    if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {           // check for http errors
        print("statusCode should be 200, but is \(httpStatus.statusCode)")
        print("response = \(response)")
    }

    let responseString = String(data: data!, encoding: NSUTF8StringEncoding)
    print("responseString = \(responseString)")
}
task.resume()