2017-06-23 15 views
1

我一直在尝试使MailGun API调用从我的项目中发送电子邮件:MailGun message sending API documentation 但是,无济于事我似乎无法使其工作。我确实通过终端发送了一封电子邮件,发送curl命令,但是当谈到Alamofire时,我被卡住了。如何使用Alamofire创建MailGun API调用?

我需要帮助翻译该终端代码片断:

curl -s --user 'api:YOUR_API_KEY' \ 
    https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages \ 
    -F from='Excited User <[email protected]_DOMAIN_NAME>' \ 
    -F [email protected]_DOMAIN_NAME \ 
    -F [email protected] \ 
    -F subject='Hello' \ 
    -F text='Testing some Mailgun awesomness!' 

要使用Alamofire的请求。

我当前的故障银行代码是:

let basicAuthentication = Request.authorizationHeader(user: "api", password: "mySecretApiKey") 

     let headers: HTTPHeaders = [(basicAuthentication?.key)!: (basicAuthentication?.value)!] 
     let parameters: Parameters? = ["from": "[email protected]_DOMAIN_NAME", 
             "to": "[email protected]", 
             "subject": "Hello There!", 
             "text": "This is sent from within a Swift project!"] 


     Alamofire.request("https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).responseJSON{ response in 
      print(response) 
     } 

任何帮助将非常感激!

回答

2

我还没有试过你的代码,但至少你的编码是错误的。您正在将您的身体编码为JSON,并且curl代码正在使用表单。 URLEncoding.default应该是编码参数的正确值。之后,如果它仍然中断,请调试响应。我建议你下载Charles代理以查看请求是否卷曲并发送iOS应用程序以及如何发送。

+1

你是我的英雄!编码错了!谢谢。 –

+2

@ A.Jam很高兴能帮到你。如果您打算进行网络通话,我仍建议您查看查尔斯。我真的不明白人们如何在没有它或类似工具的情况下有效地调试任何网络电话。 –

+1

我肯定。看起来像一个方便的工具! –