我试图在创建通道时使用 Twilio 的 REST Api 和 Alamofire 将某些属性设置为通道(https://www.twilio.com/docs/api/ip-messaging/rest/channels#action-create)
let parameters : [String : AnyObject] = [
"FriendlyName": "foo",
"UniqueName": "bar",
"Attributes": [
"foo": "bar",
"bar": "foo"
],
"Type": "private"
]
Alamofire.request(.POST, "https://ip-messaging.twilio.com/v1/Services/\(instanceSID)/Channels", parameters: parameters)
.authenticate(user: user, password: password)
.responseJSON { response in
let response = String(response.result.value)
print(response)
}
使用该代码,我收到的响应是使用 FriendlyName foo 和 UniqueName bar 创建了一个 Channel,但该 Channel 没有设置任何属性。
查看 Alamofire github ( https://github.com/Alamofire/Alamofire ),我发现有一种方法可以发送带有 JSON 编码参数的 POST 请求。所以我尝试了这个:
let parameters : [String : AnyObject] = [
"FriendlyName": "foo",
"UniqueName": "bar15",
"Attributes": [
"foo": "bar",
"bar": "foo"
],
"Type": "private"
]
Alamofire.request(.POST, "https://ip-messaging.twilio.com/v1/Services/\(instanceSID)/Channels", parameters: parameters, encoding: .JSON)
.authenticate(user: user, password: password)
.responseJSON { response in
let response = String(response.result.value)
print(response)
}
向请求中添加“encoding: .JSON”时,响应显示不仅未设置属性,而且 FriendlyName 和 UniqueName 均为零,这与使用 URL 编码参数正确设置它们之前不同。
我在“参数”中设置错误的属性吗?Twilio 的文档说 Attributes 是“一个可选的元数据字段,您可以使用它来存储您希望存储的任何数据。在此字段上不进行任何处理或验证。”
帮助将不胜感激:)