2016-07-10 13 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() 

で構成されていますが、私はこのコードを実行すると、私は何も得ます。私はApacheのアクセスログを見ていて、HTTPリクエストを試みることさえしません。

コールバック関数が呼び出されていないようです。私はprint( "callback")の出力を見ることは少なくとも期待されますが、何も起こりません。

私のプログラムがすぐに終了し、コールバックが発生しないようにしていますか?それとも別のことが起こっていますか?

これはプレイグラウンドで実行されておらず、組み込みのURL処理ライブラリを使用しています。

+0

[遊び場でアラモファイアを使用してHTTPリクエストを作成する際の遅延](http://stackoverflow.com/questions/33535968/delay-in-making-http-requests-using-alamofire-in-playground) – Kametrixom

答えて

0

コールバックが発生する前にプログラムが終了する可能性があります。プログラムの最後にシンプルにsleep(5)を追加しました。通常のCocoa GUIアプリケーションでは、このようなプログラムはすぐに終了しないので、これは必須ではありません。

関連する問題