용액. 덕분에 @ 롭하기 :
func loginRequest(url:String, withParams params: [String: String?], postCompleted : (succeeded: Bool, msg: String) ->()){
var request = NSMutableURLRequest(URL: NSURL(string: url)!)
var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
var err: NSError?
var bodyData = ""
for (key,value) in params{
if (value == nil){ continue }
let scapedKey = key.stringByAddingPercentEncodingWithAllowedCharacters(
.URLHostAllowedCharacterSet())!
let scapedValue = value!.stringByAddingPercentEncodingWithAllowedCharacters(
.URLHostAllowedCharacterSet())!
bodyData += "\(scapedKey)=\(scapedValue)&"
}
request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
var task = session.dataTaskWithRequest(request,
completionHandler: {data, response, error -> Void in
let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)
postCompleted(succeeded: true, msg: dataString!)
})
task.resume()
}
가 그럼,이 함수를 호출하고 사용자가 맞다면 내가 알 수 :
self.loginRequest("http:myurl.com",
withParams: ["email":"email","passw":"passw"])
{
(succeeded: Bool, msg: String) ->() in
if(succeeded) {
if msg == "0"
{
//Incorrect data...
}
else
{
//The login it's ok...
}
}
}
출처
2014-12-01 06:01:25
imj
http://stackoverflow.com/a/25154803/1271826을 참조하십시오. 나는이 대안 NSURLQueryItem [solution] (http://stackoverflow.com/a/27151324/1271826)이 iOS 8만을 대상으로한다면 엄청나게 우아하고 매력적이지만'+'문자를 제대로 처리하지 못한다고 (ie if 패스워드에'+'가 있었다면 제대로 작동하지 않을 것입니다). – Rob
데이터를 보낼 때 어떤 형식이어야합니까? JSON? URL 형식이 인코딩 되었습니까? @ Rob의 답변은 JSON이 NSJSONSerialization을 사용할 수있는 경우 URL 형식이 인코딩 된 경우 유용합니다. – pwightman