【发布时间】:2017-12-05 15:35:40
【问题描述】:
我正在尝试从 twilio.com 获取短信,但没有得到回复。谁能说我做错了什么?
class SMSVerificationService: NSObject {
static let sharedInstance = SMSVerificationService()
func SMSRequest(countryCode:String, phoneNumber: String) {
let accountSid = "ACc4d9785419f144412823ff20as34660c3d"
let authToken = "4wqecx41f8999caa23735da214" // changed :)
let url = URL(string: "https://\(accountSid):\(authToken)@api.twilio.com/2010-04-01/Accounts\(accountSid)/Messages")
print("url", url!)
let parameters = [
"To": "+37378847884",
"From" : "+14243960339",
"Body": "Hi daddy"
]
Alamofire.request(url!, method: .post, parameters: parameters,
encoding: JSONEncoding.default, headers: [:]).responseJSON { response in
let response = String(describing: response.result.value)
print(response)
}
}
}
【问题讨论】:
-
检查
response.result.failure怎么样? -
responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.})) -
来吧,至少我们有更多的信息。你介意
if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) {print("Data: \(utf8Text)") // original server data as UTF8 string}给我们打印的文本吗? -
数据:
<?xml version='1.0' encoding='UTF-8'?> <TwilioResponse><RestException><Code>20404</Code><Message>The requested resource /2010-04-01/AccountsACc4d9785419f144412823ff2034660c3d/Messages was not found</Message><MoreInfo>https://www.twilio.com/docs/errors/20404</MoreInfo><Status>404</Status></RestException></TwilioResponse> -
所以:有一个错误(告诉 Twilio)并且响应是 XML,而不是 JSON,这解释了前面的
responseSerializationFailed()消息。
标签: ios swift twilio alamofire