2016-07-06 19 views
0

私は現在Swiftアプリケーションをコーディングしており、JSON文字列を含むリクエストを.NETバックエンド/ Webサービスに送信したいとします。しかし、このコードを使用している場合:ASP.netのSwift/iOSクライアントリクエストからPOSTデータを受信

ASP.NET:

String jsonString = Request.Form["jsonString"]; 

スウィフト:

let url:NSURL = NSURL(string: "https://www.backend.com/backend.aspx")!; 
    let request = NSMutableURLRequest(URL: url); 
    request.HTTPMethod = "POST"; 
    request.HTTPBody = ("jsonString=" + jsonString).dataUsingEncoding(NSUTF8StringEncoding)!; 

    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithRequest(request) { 
     (
     let data, let response, let error) in 

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

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

    } 

    task.resume() } 

私のasp.netのバックエンド上の文字列がnullであることが判明しました。何らかの理由で、私は要求から検索される文字列を取得できないようです。何か案は?私はPOSTリクエストを処理するためにAlamofireモジュールを使用し、事前

+0

注意: 'guard let _:NSData'部分は恐ろしいです。ラップ解除された値を展開して破棄し、実際のエラーを出力する代わりにprint( "error")を使用します。後で、データを再度ラップする必要があります...悪い、悪い、悪い。私が人々にそれを使わないように言うことができるように、チュートリアル/サイトのURLを教えてください...:p – Moritz

+0

@EricD私はそれをここで見つけました:http://www.kaleidosblog.com/nsurlsession-in-データの即時取得 問題の解決方法を知っていますか? ASPで私の要求が空である理由を理解できないようです。 –

+0

ありがとうございました。 //あなたはASP側でnullを返すと言いますが、Swift側では何が起こっていますか?文字列はポストされていますか?エラーはありますか? – Moritz

答えて

0

感謝。

 Alamofire.request(.POST, "someWebSite/api/someApi", parameters: ["Name":"Pancakes", "Price":9.99]) 
     .responseJSON{response in 
      print("1", response.request) // original URL request 
      print("2", response.response) // URL response 
      print("3", response.data)  // server data 
      print("4", response.result) // result of response serialization 

      if let JSON = response.result.value { 
       print("JSON: \(JSON)") 
      } 
    } 
関連する問題