Alamofire не может получить никакого результата Swift 2

Я ищу много примеров, в основном от @matt в Интернете, но я не могу получить эту работу:

import Alamofire

extension Request {
    public func debugLog() -> Self {
        debugPrint(self)
        return self
    }
}

func login(userName: String, passWord: String) -> String {
    let manager = Manager.sharedInstance
    // Specifying the Headers we need
    manager.session.configuration.HTTPAdditionalHeaders = [
        "Content-Type": "application/json",
        "User-Agent": "test",
        "Cache-Control": "no-cache",
        "Authorization": "apikey"
    ]
    // When

    let params =
        ["userName" : userName,
        "passWord" : passWord]

    Alamofire.request(.POST, Constants.apiURL.url + "users/login", parameters: params)
        .validate()
        .debugLog()
        .responseJSON { responseRequest, responseResponse, responseResult in
            NSLog(String(responseRequest)) // never enter here
            NSLog(String(responseResponse))
            NSLog(String(responseResult))
    }

    return ""
}

Он никогда не входит в мой блок .responseJSON. Что бы я ни использовал в качестве параметра, вызывая ошибку или получая идеальную команду cURL от отладки, это никогда не работает.

Мой cURL в порядке, я могу нормально выполнить его в bash и получить хороший результат json.

curl -i \
    -X POST \
    -H "Content-Type: application/x-www-form-urlencoded" \
    -H "Cache-Control: no-cache" \
    -H "User-Agent: test" \
    -H "Authorization: apikey" \
    -H "Content-Type: application/json" \
    -d "passWord=123&userName=123" \
    "http://api.cc/users/login"

person GIJOW    schedule 05.09.2015    source источник
comment
Попытка изменить ``responseJSON` на responseString   -  person Bannings    schedule 05.09.2015
comment
Привет, такое же поведение. Спасибо.   -  person GIJOW    schedule 05.09.2015
comment
Какая версия Alamofire (точно, если бы вы могли) и какая версия Xcode?   -  person cnoon    schedule 06.09.2015
comment
pod 'Alamofire', :git =› 'github.com/Alamofire/Alamofire.git' , :branch =› 'swift-2.0'   -  person GIJOW    schedule 06.09.2015


Ответы (2)


Вы получаете какой-либо вывод в консоли для этого?

Похоже, вы используете Xcode 7 с включенной безопасностью транспорта приложений для своего приложения и отправляете HTTP-запрос. Попробуйте игнорировать ограничения ATS, добавив это в свой Info.plist:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

Подробнее здесь: Как загрузить URL-адрес HTTP с включенной безопасностью транспорта приложений в iOS 9?

person filwag    schedule 06.09.2015
comment
это не так, запрос просто не дает никакого ответа - person GIJOW; 07.09.2015

Я думаю, у вас проблемы с заголовками. Вы должны обновить свои запросы. Вы можете добавить свои заголовки в свой запрос с помощью Alamofire 2 и Swift 2.

Для решения: перейти к решению

person fatihyildizhan    schedule 18.09.2015