2016-11-07 27 views
1
let requestDictionary : [String: AnyObject] = [ 
    "sm_username" : name as AnyObject, 
    "sm_password" : pass as AnyObject 
] 

let headers = [ 
    "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==", 
    "Content-Type": "application/x-www-form-urlencoded", 
    "Krikor": "Krikor" 
] 

Alamofire.request(baseURL+"login", method: .post, parameters: requestDictionary, encoding: JSONEncoding(options: []),headers: headers 
     ).responseJSON{ response in 
    debugPrint(response)     
    print("krirkrkdkd") 
    print(response)  
} 

したがって、ヘッダーは渡されていません。エンコードされたパラメータもありません。どうして?そして修正する方法は?ここAlamofire POST要求が機能しない

+0

どのようにそれらが渡されていないことを知っていますか?あなたのリクエストの「エラー」をチェックしましたか? – Larme

+0

ヘッダーでは、URLエンコーディングを使用すると伝えますが、Alamofireリクエストでは 'JSONEncoding'を使用し、' JSONEncoding.default'を使用することをお勧めします – njuri

+0

まだ動作しません。パケットスニファを使用して要求をチェックします。 –

答えて

1

Kiikor、

は、符号を含め迅速にalamofire要求の実施例です。

func files_download(sourcePath: String) { 

    let defaults = UserDefaults.standard 
    if let name = defaults.string(forKey: "dropBoxAuth") 
    { 
     token2Save = name 
    } 

    var headers:HTTPHeaders! 
    let subPart: Dictionary = ["path":sourcePath] 
    do { 
     let data = try JSONSerialization.data(withJSONObject: subPart, options: []) 
     let dataString = String(data: data, encoding: .utf8) 
     headers = ["Authorization": "Bearer " + token2Save, "Dropbox-API-Arg": dataString!] 
    } catch { 
     print("error") 
    } 

    Alamofire.request("https://content.dropboxapi.com/2/files/download", method: .post, encoding: JSONEncoding.init(options: []), headers: headers).responseData(completionHandler: {feedback in 
     guard feedback.result.value != nil else { 
      print("Error: did not receive data", print("request \(request) feedback \(feedback)")) 
      return 
     } 
     guard feedback.result.error == nil else { 
      print("error calling POST on list_folder") 
      print(feedback.result.error) 
      return 
     } 
     if let JSON = feedback.result.value {  
      let dataString = String(data: JSON, encoding: .utf8) 
     } 
     if let IMAGE = feedback.result.value { 
      sharedDataAccess.fnData(index2seek: 0, fnData: feedback.result.value! as Data) 
      NotificationCenter.default.post(name: Notification.Name("nextACtion"), object: nil, userInfo: nil) 
     } 
    }) 
関連する問題