2016-07-10 4 views
0

매우 간단한 Swift HTTP POST가 작동하는 데 문제가 있습니다.Swift NSMutableURLRequest URLSession 콜백이 호출되지 않습니다.

나는 현재 간단한 커맨드 라인 프로젝트를 가지고 있고, main.swift 내가 내 PHP 스크립트가 우체부를 사용하여 작동하는지 확인

import Foundation 

let url = NSURL(string: "http://127.0.0.1/input.php")! 
let session = NSURLSession.sharedSession() 

let request = NSMutableURLRequest(URL: url) 
request.HTTPMethod = "POST" 

let paramString = "value=100&dataPointId=1" 
request.HTTPBody = paramString.dataUsingEncoding(NSUTF8StringEncoding) 

session.dataTaskWithRequest(request, completionHandler: { 

    (let data, let response, let error) in 

    print("callback") 

    guard let _:NSData = data, let _:NSURLResponse = response where error == nil else { 
     print("error") 
     return 
} 

    let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding) 
    print(dataString) 

}).resume() 

구성,하지만이 코드를 실행하면, 나는 아무것도 얻을 수 없다. 아파치 액세스 로그를보고 있는데 HTTP 요청을 시도하지도 않습니다.

콜백 함수가 호출되지 않는 것과 같습니다. 최소한 print ("콜백")의 출력을보고 싶지만 아무 일도 일어나지 않습니다.

내 프로그램이 너무 빨리 종료되고 콜백이 발생하지 않습니까? 아니면 다른 일이 있습니까?

놀이터에서 실행되지 않고 내장 URL 처리 라이브러리를 사용 중입니다.

+0

[놀이터에서 Alamofire를 사용하여 HTTP 요청을 만드는 데 지연이있을 수 있음] (http://stackoverflow.com/questions/33535968/delay-in-making-http-requests-using-alamofire-in-playground) – Kametrixom

답변

0

콜백이 발생하기 전에 프로그램이 종료되었습니다. 프로그램 끝 부분에 간단한 sleep(5)을 추가하여 끝낼 시간을주었습니다. 이것은 프로그램이 바로 종료되지 않기 때문에 일반 Cocoa GUI 응용 프로그램에서는 필요하지 않습니다.

관련 문제