2017-02-10 9 views
0

Я надеялся, что кто-то сможет объяснить, что делает запрос POST (с параметрами). Когда я запускаю следующую команду, представленную документацию Alamofire, это является то, что получается:Alamofire POST Request

Код

let url = "https://httpbin.org/post" 
let parameters: Parameters = [ 
     "foo": "bar", 
     "baz": ["a", 1], 
     "qux": [ 
      "x": 1, 
      "y": 2, 
      "z": 3 
     ] 
    ] 


Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON { response in 
    if((response.result.value) != nil) { 
     let jsonVar: JSON = JSON(response.result.value!) 
     print(jsonVar) 
    } 
} 

Результат

{ 
"files" : { 

}, 
"origin" : "192.104.181.247", 
"data" : "{\"baz\":[\"a\",1],\"qux\" {\"y\":2,\"x\":1,\"z\":3},\"foo\":\"bar\"}", 
"headers" : { 
"Accept" : "*\/*", 
"Accept-Encoding" : "gzip;q=1.0, compress;q=0.5", 
"Content-Type" : "application\/json", 
"Host" : "httpbin.org", 
"Content-Length" : "53", 
"User-Agent" : "HTTPRequest\/1.0 (com.dexstrum.HTTPRequest; build:1; iOS 10.2.0) Alamofire\/4.3.0", 
"Accept-Language" : "en;q=1.0" 
}, 
"json" : { 
"baz" : [ 
    "a", 
    1 
], 
"foo" : "bar", 
"qux" : { 
    "x" : 1, 
    "y" : 2, 
    "z" : 3 
} 
}, 
"form" : { 

}, 
"args" : { 

}, 
"url" : "https:\/\/httpbin.org\/post" 
} 

Что именно происходит с параметрами и запроса POST?

ответ

1

url Вы попадаете в него, это позволяет получить сообщение . Вы можете получить json ответ получить или сообщение метод. Обычно вы извлекаете данные по , чтобы получить метод и отправить данные по post метод. При отправке данных с сообщение запросит для него необязательный параметр , который, как правило, предопределен.

SO вы отправляете запрос на сообщение здесь с alamofire и вместе с некоторым параметром, которые удовлетворяют его требованиям. Здесь вы кодирующая параметрв JSONEncoding.default, который означает, что он посылает параметр данных, закодированных в JSON наконец, вы получите ответ как JSON сог вы объявили .responseJSON. Надеюсь, это поможет.

+0

Да, это действительно помогло. Я понял, что мои параметры могут быть ошибочными или ошибочными. – Dexstrum

+0

Мне интересно, почему параметры, которые я создал, не передаются правильно. Я дал параметры: Параметры = ["x": 2, "y": 2], и это мой почтовый код Alamofire.request (url, method: .post, parameters: parameters, encoding: JSONEncoding.default) .responseJSON {ответ в если { пусть jsonVar ((response.result.value) = ноль!): (! response.result.value) JSON = JSON печати (jsonVar) } еще { печать (response.result.value «no response») } } – Dexstrum

+0

Он не производит никакого ответа. – Dexstrum