2016-05-27 6 views
1

Я новичок в быстрой и iOS и пытаюсь использовать Alamofire и маршрутизатор для них, что возвращает NSMutableURLRequest, но мой код не работал.
Итак, я просто сделал один NSURLRequest для теста и запросил его, но результаты были такими же. Вот мой код. В настоящее время я использую Alamofire и SwiftyJSON.Alamofire NSURLRequest через метод POST не работает

let params = ["Id": "1234567", "Token": "something"] 
    let url = NSURL(string: "myurl") 
    var request = NSMutableURLRequest(URL: url!) 
    request.HTTPMethod = Alamofire.Method.POST.rawValue 
    let encoding = Alamofire.ParameterEncoding.JSON 
    (request, _) = encoding.encode(request, parameters: params) 

Alamofire.request(request) 
     .validate() 
     .responseJSON { response in 
      switch response.result { 
      case .Success: 
       if let value = response.result.value { 
        let json = JSON(value) 
        let token = json["token"].stringValue 
        let error = json["error"].stringValue 
        print("token : \(token), error : \(error)") 
       } 
      case .Failure(let error): 
       // TODO: 
       print(error) 
      } 
    } 

Приведенный выше код отправляет запрос без параметров. Есть ли ошибки в моем коде?

+1

Вы попробовали образец на примере Alamofire с запросом на запись заголовка с json закодированными параметрами –

+0

Да, он работал правильно. –

ответ

0

Я проверил ваш код и перед выполнением функции закодировать request.HTTPBody пусто, но после того, как у него есть некоторые данные, такие как

Optional<NSData> - Some:<7b22546f 6b656e22 3a22736f 6d657468 696e6722 2c224964 223a2231 32333435 3637227d>

Когда я называю print(response.request?.HTTPBody) в Alamofire response блоке, я получаю параметры поскольку NSData и HTTPBody включают те же данные, что и перед отправкой запроса, чтобы он работал.

Попробуйте также изменить ответ от responseJSON к responseString, потому что, если ваш ответ не может быть разобрано на JSON вы получаете Failure.

Я думаю, вы должны проверить свой URL-адрес, если у вас есть правильные данные.

Вместо вашего решения я использую

Alamofire.request(method, url, parameters: parameters, encoding: .JSON) .responseString{ response in}

одно и то же, но короче и все в качестве параметров.

 Смежные вопросы

  • Нет связанных вопросов^_^