json - (Swift) twilio post 请求使用 alamofire 设置属性

标签 json swift twilio alamofire twilio-api

我正在尝试使用 Twilio 的 REST Api 和 Alamofire 在创建 channel 时将某些属性设置为 channel (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)
}

将“编码:.JSON”添加到请求时,响应显示不仅未设置属性,而且 FriendlyName 和 UniqueName 均为 nil,这与之前使用 URL 编码参数正确设置它们不同。

我是否在“参数”中设置了错误的属性? Twilio 的文档说 Attributes 是“一个可选的元数据字段,您可以用来存储您想要的任何数据。没有对该字段进行任何处理或验证。”

帮助将不胜感激:)

最佳答案

我找到了我的问题的答案。原来我的属性字段格式不正确。

这是对我有用的代码:

let parameters : [String : AnyObject] = [
    "FriendlyName": "foo",
    "UniqueName": "bar",
    "Attributes": "{\"key\":\"value\",\"foo\":\"bar\"}",
    "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)
        debugPrint(response)
}

希望这对其他人有帮助:)

关于json - (Swift) twilio post 请求使用 alamofire 设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39136376/

相关文章:

react-native - 如何将最新的 Twilio SDK 与 React Native 集成

php - 选择 UNIX_TIMESTAMP() 返回奇怪的 JSON 键

ios - 在 Swift 中分配字符串数组时出错

swift - 将 PromiseKit 转换为 Signal 和 SignalProducer

java - Twilio 线程消息

php - twilio php 顺序拨号

javascript - JS 和 jQuery,函数完成时全局对象变空

json - 在 Go 中使用嵌套的 [] 结构循环?

json - 是否应该在 Restful 错误响应中使用 HTTP 状态?

ios - 从音乐库检索音乐,无法弄清楚如何从 MPMediaItem 检索歌曲的艺术图片和名称