2016-07-06 70 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後端原來是空。無論出於何種原因,我似乎無法從請求中獲取字符串。有任何想法嗎?

預先感謝

+0

注意:'guard let _:NSData'部分太可怕了。它展開並丟棄未打包的值,然後使用print(「error」)而不是打印實際的錯誤。之後你必須拆開數據,再次......壞,壞,壞。請給我的教程/網站的URL來源,以便我可以告訴人們不要使用它...:p – Moritz

+0

@EricD我在這裏找到它:http://www.kaleidosblog.com/nsurlsession-in- swift-get-and-post-data 你知道我該如何解決我的問題嗎?似乎無法弄清楚爲什麼我的請求是空的ASP –

+0

非常感謝。 //你說你在ASP端得到空值,但是Swift端發生了什麼?是否發佈了字符串?有錯誤嗎? – Moritz

回答

0

我用Alamofire模塊來處理POST請求。

 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)") 
      } 
    } 
相關問題