2016-11-15 5 views
5

Alamofire 4でHTTP本体のデータを含むPOST要求をどのように送信できますか?私はswift 2.3でカスタムエンコーディングを使用していました。私はコードスウィフト3を変換し、コード化してエンコードしようとしましたが動作しませんでした。このコード:Alamofire 4で本体にデータを持つPOSTリクエスト

public struct MyCustomEncoding : ParameterEncoding { 
private let data: Data 
init(data: Data) { 
    self.data = data 
} 
public func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest { 

    var urlRequest = try urlRequest.asURLRequest()   
    do {    
      urlRequest.httpBody = data 
      urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type") 

    } catch { 
     throw AFError.parameterEncodingFailed(reason: .jsonEncodingFailed(error: error)) 
    } 

    return urlRequest 
} 

とAlamofire要求:

let enco : ParameterEncoding = MyCustomEncoding(data: ajsonData) 
    Alamofire.request(urlString, method: .post , parameters: [:], encoding: enco , headers: headers).validate() 
       .responseJSON { response in 
        switch response.result { 
        case .success: 
         print(response) 

         break 
        case .failure(let error): 

         print(error) 
        } 
    } 

答えて

16

は、あなたはそれが働いているあなたに感謝SWIFT 3

let urlString = "https://httpbin.org/get" 

Alamofire.request(urlString, method: .post, parameters: ["foo": "bar"],encoding: JSONEncoding.default, headers: nil).responseJSON { 
response in 
    switch response.result { 
       case .success: 
        print(response) 

        break 
       case .failure(let error): 

        print(error) 
       } 
} 
+0

に以下のような要求を送信する必要があります。 – Cagatay

+0

@Cagatayようこそ:) –

+0

PHPでこのポスト配列にアクセスできません。ポスト配列はPHPでは空です。 PHPでポストパラメータを使う方法を教えてください –

関連する問題