2016-11-15 99 views
5

jak można wysłać żądanie POST z danymi w treści HTTP za pomocą Alamofire 4? Użyłem kodowania niestandardowego w wersji 2.3, które działało dobrze. Przekodowałem mój kod swift 3 i próbowałem kodowania paramater, ale nie działa. Ten kod:Żądanie POST z danymi w ciele z 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 
} 

i prośba 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) 
        } 
    } 

Odpowiedz

16

Musisz wysłać prośbę jak poniżej w szybkim 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

dziękuję to działa. – Cagatay

+0

@Cagatay Welcome :) –

+0

Nie mam dostępu do tej tablicy postów w PHP, tablica postów jest pusta w PHP. Proszę mi powiedzieć, jak używać parametrów post w PHP –