Alamofire - плохой запрос - PullRequest
       40

Alamofire - плохой запрос

0 голосов
/ 04 сентября 2018

Боюсь, я не могу поделиться URL API. Но я проверил на Почтальон , все работает. Это запрос POST , а следующий ответ:

{
    "user_key": "b0aebdedb15e2beaaf479ca3c4f8227e8e970681"
}  

Скриншот почтальона:

enter image description here

В коде это запрос, который я делаю с использованием Alamofire:

Alamofire.request("some url", method: .post, parameters: params, encoding: URLEncoding.httpBody, headers: ["Content-Type":"application/json"])
            .responseObject { (response: DataResponse<User>) in

                let userResponse = response.result.value
                print("")
    }

Но userResponse становится нулевым. Это Пользователь объект:

import ObjectMapper

class User: Mappable {

    var authToken: String?

     required init?(map: Map) {

    }

    func mapping(map: Map) {
        self.authToken <- map["user_key"]
    }


}

Я использую ObjectMapper здесь.

Предполагая, что это не JSON объект, я попытался обработать его как String:

 Alamofire.request("some url", method: .post, parameters: params, encoding: URLEncoding.httpBody, headers: ["Content-Type":"application/json"])
            .responseString { (response: DataResponse<String>) in
                let dataUser = response.data as! Any
                let dataUser1 = response.data as! AnyObject
                let error = response.error
                let code = response.response?.statusCode
                print(response.value)
                print(response.result.value)
        }  

Тем не менее, ничего. Я не могу получить значение. Код состояния, однако, получается равным 400 (неверный запрос). Что именно это? JSON объект или String? Как мне это исправить?

1 Ответ

0 голосов
/ 05 сентября 2018

Просто попробуйте заменить

это URLEncoding.httpBody до JSONEncoding.default

JSONEncoding.default

Использует JSONSerialization для создания JSON-представления объекта параметров, который устанавливается в качестве тела запроса. Поле заголовка HTTP Content-Type закодированного запроса имеет значение application/json.

Ссылка Alamofire

...