2016-07-25 10 views
0

PUTメソッド用のAlamofire Content-Typeアプリケーション/ jsonにcontent-type: application/jsonを追加するソリューションが見つかりました。私は以下のように開発しましたが、正しく動作しません。PUTメソッド用Alamofire Content-Typeアプリケーション/ json

 Alamofire.request(.PUT, Config.preferenceURL, parameters: param, headers: headers) 
      .validate(contentType: ["application/json"]) 
      .responseJSON { response in 
       let swiftyJsonVar = JSON(response.result.value!) 
       print(swiftyJsonVar) 
       if (swiftyJsonVar["success"]) { 

       } 

       JHProgressHUD.sharedHUD.hide() 
     } 
+0

エラーログを表示/追加します。 – Rugmangathan

答えて

0

このようcontent-type: application/json見て追加: - あなたのrequest方法でencoding: .JSONを指定する必要が

let URL = NSURL(string: "https://httpbin.org/post")! 
let mutableURLRequest = NSMutableURLRequest(URL: URL) 
mutableURLRequest.HTTPMethod = "POST" 

let parameters = ["foo": "bar"] 

do { 
    mutableURLRequest.HTTPBody = try NSJSONSerialization.dataWithJSONObject(parameters, options: NSJSONWritingOptions()) 
} catch { 
    // No-op 
} 

mutableURLRequest.setValue("application/json", forHTTPHeaderField: "Content-Type") 

Alamofire.request(mutableURLRequest) 

More detail here

1

を。それ以外の場合は、パラメータをURLのクエリパラメータとしてエンコードします。 .JSONエンコーディングを使用すると、Content-Typeヘッダーが自動的に設定されます。

Alamofire.request(.PUT, Config.preferenceURL, parameters: param, encoding: .JSON, headers: headers) 

また、あなたがサーバーに送信している要求にcURLコマンド相当をプリントアウトするdebugPrint APIを使用することができます。

let request = Alamofire.request(.PUT, Config.preferenceURL, parameters: param, encoding: .JSON, headers: headers) 
debugPrint(request) 

乾杯。

+0

* "' Content-Type'ヘッダが自動的に設定されます。 "*これは4.0で変更されていますか?私は 'JSONEncoding.default'を使っても手動で追加する必要がありました。 – osrl

関連する問題