如何将原始 NSData 以及一些 NSStrings 发布到我的服务器?

Posted

技术标签:

【中文标题】如何将原始 NSData 以及一些 NSStrings 发布到我的服务器?【英文标题】:How do I POST raw NSData as well as some NSStrings to my server? 【发布时间】:2018-08-21 19:53:11 【问题描述】:

我有一大块 NSData 想发送到我的服务器,但我也想发送一个字符串字典,其中包含映射到字符串键的字符串键。

如何在同一个请求中同时发布两者?

几乎所有指南都显示将其包装在 NSDictionary 中,然后使用 NSJSONSerialization 将其转换为 NSData 然后发布,但我不能将 NSData 和 NSStrings 放在同一个 NSDictionary 中,它只会崩溃,所以我假设我必须将它分开,但那看起来怎么样?

基本上我如何将 JSON 序列化为 NSData,然后还有一个单独的 NSData blob?

【问题讨论】:

可以先将 NSData 转换为 base64 String 再添加到字典中。然后在服务器 api 端点,您需要将该 base64 字符串转换回数据。 【参考方案1】:
let body = NSMutableDictionary()
body.setValue("myString" forKey: "stringType")
body.setValue(data?.base64EncodedString(options: .lineLength64Characters) forKey: "dataType")

通过这种方式,您可以在字典中同时拥有数据和字符串。 这里 'data?.base64EncodedString(options: .lineLength64Characters)' 返回一个带有 base64 编码的 string。所以你的字典只包含字符串,在服务器端你必须将它转换回数据。

希望它能解决你的问题

【讨论】:

以上是关于如何将原始 NSData 以及一些 NSStrings 发布到我的服务器?的主要内容,如果未能解决你的问题,请参考以下文章