2016-11-15 38 views
5

ile birlikte vücutta bulunan verilerle, HTTP gövdesinde Alamofire 4 ile bir veriye POST talebi nasıl gönderilebilir? Hızlı 2.3'te özel kodlama kullandım, iyi çalışıyordu. Kod 3'ümü değiştirdim ve paramater kodlamayı denedim ama çalışmadım. Bu kod:POST talebi, Alamofire 4

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 
} 

ve Alamofire isteği:

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) 
        } 
    } 

cevap

16

Bunu çalışıyor teşekkür ederim hızlı 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

aşağıda gibi istek göndermek gerekiyor. – Cagatay

+0

@Cagatay Hoşgeldin :) –

+0

Bu yazı dizisine PHP'de erişemiyorum, posta dizisi PHP'de boş. Lütfen PHP'de post parametrelerini nasıl kullanacağımı söyle –