iOS http POST с использованием Alamofire

Мне нужна помощь в использовании Alamofire для отправки POST на веб-страницу с использованием имени пользователя/пароля через API от Twilio.

Раньше я использовал SwiftRequest из GitHub, но он не поддерживает Swift 2.0.

Код, который я использовал (используя SwiftRequest):

        var data = [
            "To" : mobileInput.text as String!,
            "From" : twilioSMSFrom,
            "Body" : String(code) as String
        ]

        var swiftRequest = SwiftRequest()

        swiftRequest.post("https://api.twilio.com/2010-04-01/Accounts/\(twilioUsername)/Messages",
            auth: ["username" : twilioUsername, "password" : twilioPassword],
            data: data,
            callback: {err, response, body in
                if err == nil {
                    println("Success: \(response)")
                } else {
                    println("Error: \(err)")
                }
            })

Как я могу перевести это, чтобы вместо этого использовать Alamofire?

Я пытался найти решение, но смог найти любое.

Кто-нибудь может мне помочь?


person Eirik Madland    schedule 31.10.2015    source источник


Ответы (3)


Попробуйте что-то вроде этого:

Alamofire.request(.POST, "https://api.twilio.com/2010-04-01/Accounts/\(twilioUsername)/Messages", parameters: ["username": twilioUsername, "password" : twilioPassword])
     .responseJSON { response in
         print(response.request)
         print(response.response)
         print(response.result)

         if let JSON = response.result.value {
             print("Did receive JSON data: \(JSON)")
         }
         else {
             print("JSON data is nil.")
         }

      }

Вам обязательно следует проверить их страницу на github — https://github.com/Alamofire/Alamofire.

person Superian007    schedule 31.10.2015
comment
Это вернуло УСПЕХ, но ваш ответ не включал часть данных. Как мне убедиться, что данные также отправляются? - person Eirik Madland; 31.10.2015
comment
Извините, что я недостаточно точен. Я имел в виду, что часть данных должна быть отправлена ​​​​в POST, чтобы иметь возможность получить необходимые данные в результате. Я проверил ваш код, и он ответил, что данные JSON равны нулю, как и ожидалось. - person Eirik Madland; 31.10.2015

Я понял.

Решение с использованием Alamofire:

        let data = [
            "To" : mobileInput.text as String!,
            "From" : twilioSMSFrom,
            "Body" : String(code) as String
        ]

        Alamofire.request(.POST, "https://\(twilioUsername):\(twilioPassword)@api.twilio.com/2010-04-01/Accounts/\(twilioUsername)/Messages", parameters: data)
            .responseJSON { response in
                print(response.request)
                print(response.response)
                print(response.result)
        }
person Eirik Madland    schedule 01.11.2015

Это последний ответ SWIFT 2.2 VERSION, попробуйте этот, он вам поможет....

ПАРАМЕТРЫ:-

    let params : Dictionary = ["YourKEY" : "YourVALUE"]

Почтовый запрос_Форма: -

Alamofire.request(.POST,"Post Your Url HERE", parameters: params, encoding:.JSON).responseJSON
        {
          response in switch response.result 
            {
                  case .Success(let JSON):
         //   print("Success with JSON: \(JSON)")
            //converting json into NSDictionary

            let response = JSON as! NSDictionary
            print(response)

            var array = NSMutableArray!()
            //converting respose form into NSMutableArray formate
            array = response.valueForKey("countryList")as? NSMutableArray

            //example if there is an id
          //  let userId = response.objectForKey("id")!

        case .Failure(let error):
            print("Request failed with error: \(error)")
            }
    }
person Akash Raghani    schedule 18.06.2016