2017-11-24 11 views
1

Alamofireを使用してjson文字列を投稿する方法。 Alamofireリクエストは、パラメータとして辞書型のみを取ります:[String : Any]。しかし、私は辞書としてではなくパラメータとしてjson文字列を渡したいと思います。あなたはすでにあなたの符号化方式がJSONEncoding.defaultサーバーがエンコード受信うになります言及becuseあなたはデータAlamofireがjsonにご[String : Any]をエンコード通過する間にあなたが[String : Any]の形でencoding: JSONEncoding.defaultとパラメータ・データを使用しているAlamofireのJson文字列を投稿する

Alamofire.request(url, method: .post, 
     parameters: [String : Any], // <-- takes dictionary !! 
     encoding: JSONEncoding.default, headers: [:]) 

答えて

0

JSON

0

最も簡単な方法は、jsonのデータをネイティブ辞書に変換して、それを意図したとおりに使用することです。

var params = jsonToDictionary(from: json) ?? [String : Any]() 
Alamofire.request(url, method: .post, parameters: params, encoding: JSONEncoding.default, headers: [:]) 
0

重複:POST request with a simple string in body with Alamofire

extension String: ParameterEncoding { 

    public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest { 
     var request = try urlRequest.asURLRequest() 
     request.httpBody = data(using: .utf8, allowLossyConversion: false) 
     return request 
    } 

} 

Alamofire.request("http://mywebsite.com/post-request", method: .post, parameters: [:], encoding: "myBody", headers: [:]) 
関連する問題