2016-05-17 64 views
0

我做什麼用AFNetworking: -傳遞參數在迅速

1.I想用AFHTTPSessionManager

2.I調用服務想通過只在JSON格式參數使用POST方法 和我也試過通過參數JSON但我收到錯誤的請求

3,採用AFNetworking 3.0

  • 簡稱鏈路Convert Dictionary to JSON in Swift
  • 我的代碼: -

     dict = ["email_id":user! , "password": pass!] 
    
        do { 
           jsonData = try NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted) 
           // here "jsonData" is the dictionary encoded in JSON data 
           theJSONText = String(data: jsonData!, 
                  encoding: NSASCIIStringEncoding) 
           print("json string = \(theJSONText)") 
    
    
          } catch let error as NSError { 
           print(error) 
          } 
    
    
    
        manager.POST(urlString, parameters: theJSONText as String!, success: 
           { 
            requestOperation, response in 
    
            let result = NSString(data: response as! NSData, encoding: NSUTF8StringEncoding)! 
    
            print(result) 
           }, 
             failure: 
           { 
            requestOperation, error in 
            //let result = NSString(data: error as! NSData, encoding: NSUTF8StringEncoding)! 
    
            print(error) 
    
          }) 
    

    我想DO: - 我想將參數作爲JSON格式傳遞

     Printing description of theJSONText: 
    "{\n \"email_id\" : \"bbh\",\n \"password\" : \"vh\"\n}" 
    

    轉換成JSON字符串也經過我不是JSON格式越來越

    請幫我做這個..

    +0

    爲什麼你採取太多的併發症,你可以直接傳遞字典ØPARAM –

    +0

    我想發送類似JSON格式 – Murugesh

    +0

    字典也可以作爲JSON格式傳遞 –

    回答

    0

    刪除下面從代碼行,

    theJSONText = String(data: jsonData!, 
                 encoding: NSASCIIStringEncoding) 
          print("json string = \(theJSONText)") 
    

    設置選項0而不是在json序列化中的NSJSONWritingOptions.PrettyPrinted

    並通過jsonData(作爲數據)作爲參數而不是theJSONText

    更新:

    嘗試這樣,

    let urlString = "http://example.com/file.php" 
    let dictionary = ["key1": [1,2,3], "key2": [2,4,6]] 
    
    var error: NSError? 
    let data = NSJSONSerialization.dataWithJSONObject(dictionary, options: NSJSONWritingOptions.allZeros, error: &error) 
    let jsonString = NSString(data: data!, encoding: NSUTF8StringEncoding) 
    let parameters = ["data" : jsonString!] 
    
    let manager = AFHTTPSessionManager() 
    manager.responseSerializer = AFHTTPResponseSerializer() 
    manager.POST(urlString, parameters: parameters, success: 
    { 
        requestOperation, response in 
    
        let result = NSString(data: response as! NSData, encoding: NSUTF8StringEncoding)! 
    
        println(result) 
    }, 
    failure: 
    { 
        requestOperation, error in 
    }) 
    
    在這個例子中的響應

    是字符串,如果響應JSON格式,那麼你應該在JSON使用nsjsonserialization,而不是字符串

    序列化

    希望這會有所幫助:)

    +0

    我已經刪除該行並添加jsonData =嘗試NSJSONSerialization.dataWithJSONObject(字典,選項:NSJSONWritingOptions(rawValue:0)) – Murugesh

    +0

    而不是NSJSONWritingOptions.PrettyPrinted現在我也得到同樣的問題壞請求 – Murugesh

    +0

    你應該使用郵遞員檢查你的網絡服務,這樣你就可以知道你的網絡服務接受哪種格式的數據 – Lion